回答編集履歴

1

追記

2021/07/18 03:19

投稿

can110
can110

スコア38266

test CHANGED
@@ -27,3 +27,51 @@
27
27
  print(df1)
28
28
 
29
29
  ```
30
+
31
+
32
+
33
+ なお、一部の列名にて`query`が正確に動作しないようです。
34
+
35
+ たとえば`コード2桁`が`コード2桁`のように数字部分が半角として解釈されてしまうようです。
36
+
37
+ よって`query`を使わない以下のようなコードのほうが確実です。
38
+
39
+ ```Python
40
+
41
+ import pandas as pd
42
+
43
+
44
+
45
+ df = pd.DataFrame({
46
+
47
+ 'city': ['osaka', 'osaka', 'osaka', 'osaka', 'tokyo', 'tokyo', 'tokyo'],
48
+
49
+ 'food': ['apple', 'orange', 'banana', 'banana', 'apple', 'apple', 'banana'],
50
+
51
+ 'price': [100, 200, 250, 300, 150, 200, 400],
52
+
53
+ 'コード2桁': [20, 11, 20, 4, 20, 11, 11]})
54
+
55
+
56
+
57
+ cds = sorted(set(df['コード2桁']))
58
+
59
+ print(cds)
60
+
61
+ for cd in cds:
62
+
63
+ # pandas.core.computation.ops.UndefinedVariableError: name 'コード2桁' is not defined
64
+
65
+ #df1 = df.query(f'コード2桁 == {cd}')
66
+
67
+ #df1 = df.query(f'`コード2桁` == {cd}')
68
+
69
+
70
+
71
+ # OK
72
+
73
+ df1 = df[df['コード2桁'] == cd]
74
+
75
+ print(df1)
76
+
77
+ ```