回答編集履歴
5
d
answer
CHANGED
@@ -100,7 +100,7 @@
|
|
100
100
|
> Python的にはどの文法用法なのか教えて頂けませんか?
|
101
101
|
|
102
102
|
以下の例で説明すると、
|
103
|
-
1. df["Col1"] で
|
103
|
+
1. df["Col1"] で Col1 列を Series オブジェクト (1次元配列) で取得する。
|
104
104
|
2. df["Col1"] == "A" で値が "A" のインデックスは True、そうでないインデックスは False のブール型の Series オブジェクトが返る。
|
105
105
|
3. DataFrame の [] にブール型の Series オブジェクトを渡すことで、値が True のインデックスの行だけを抽出できる。
|
106
106
|
|
4
っd
answer
CHANGED
@@ -101,7 +101,7 @@
|
|
101
101
|
|
102
102
|
以下の例で説明すると、
|
103
103
|
1. df["Col1"] で列 Col1 列を Series オブジェクト (1次元配列) で取得する。
|
104
|
-
2. df["Col1"] == "A" で値が "A" のインデックスは True、そうでない
|
104
|
+
2. df["Col1"] == "A" で値が "A" のインデックスは True、そうでないインデックスは False のブール型の Series オブジェクトが返る。
|
105
105
|
3. DataFrame の [] にブール型の Series オブジェクトを渡すことで、値が True のインデックスの行だけを抽出できる。
|
106
106
|
|
107
107
|
numpy のブールインデックスと似た機能です。
|
3
d
answer
CHANGED
@@ -71,4 +71,68 @@
|
|
71
71
|
|
72
72
|

|
73
73
|
|
74
|
-
bean_number をコードに直接書く代わりにコマンドライン引数で渡したい場合は argparse モジュールをお使いください。
|
74
|
+
bean_number をコードに直接書く代わりにコマンドライン引数で渡したい場合は argparse モジュールをお使いください。
|
75
|
+
|
76
|
+
## 追記
|
77
|
+
|
78
|
+
> フォーマット済み文字列リテラル自体初めて見たので、(自分のキャパの問題で)まだ完全に理解しきれていませんが、少し自分の方で調べてみます。
|
79
|
+
|
80
|
+
Python 3.6 以降で利用できる言語機能です。
|
81
|
+
変数を文字列の中に埋め込むやり方は以下の3つがあります。(上から古い順)
|
82
|
+
f-string はわりと最近追加された機能なので、ネット上のコードは format() を使っているものが多いですが、シンプルにかけるので気に入っています。
|
83
|
+
|
84
|
+
```python
|
85
|
+
val = 123
|
86
|
+
|
87
|
+
# Python 2
|
88
|
+
s = 'val == %d' % val
|
89
|
+
print(s) # val == 123
|
90
|
+
|
91
|
+
# format() (Python 3 以降)
|
92
|
+
s = 'val == {}'.format(val)
|
93
|
+
print(s) # val == 123
|
94
|
+
|
95
|
+
# f-string (Python 3.6 以降)
|
96
|
+
s = f'val == {val}'
|
97
|
+
print(s) # val == 123
|
98
|
+
```
|
99
|
+
|
100
|
+
> Python的にはどの文法用法なのか教えて頂けませんか?
|
101
|
+
|
102
|
+
以下の例で説明すると、
|
103
|
+
1. df["Col1"] で列 Col1 列を Series オブジェクト (1次元配列) で取得する。
|
104
|
+
2. df["Col1"] == "A" で値が "A" のインデックスは True、そうでない要素は False のブール型の Series オブジェクトが返る。
|
105
|
+
3. DataFrame の [] にブール型の Series オブジェクトを渡すことで、値が True のインデックスの行だけを抽出できる。
|
106
|
+
|
107
|
+
numpy のブールインデックスと似た機能です。
|
108
|
+
|
109
|
+
[NumPy配列のブールインデックス参照](https://hydrocul.github.io/wiki/numpy/ndarray-ref-boolean.html)
|
110
|
+
|
111
|
+
実装上の話をすると、Python では自作のクラスで、`[]` や `==` などの演算子をオーバーライドできるので、このような仕組みを実現できています。
|
112
|
+
|
113
|
+
```python
|
114
|
+
import pandas as pd
|
115
|
+
|
116
|
+
df = pd.DataFrame({'Col1': ['A', 'A', 'B', 'C'],
|
117
|
+
'Col2': [31, 2, 3, 4]})
|
118
|
+
print(df)
|
119
|
+
# Col1 Col2
|
120
|
+
# 0 A 31
|
121
|
+
# 1 A 2
|
122
|
+
# 2 B 3
|
123
|
+
# 3 C 4
|
124
|
+
|
125
|
+
mask = df["Col1"] == "A"
|
126
|
+
print(mask)
|
127
|
+
# 0 True
|
128
|
+
# 1 True
|
129
|
+
# 2 False
|
130
|
+
# 3 False
|
131
|
+
# Name: Col1, dtype: bool
|
132
|
+
|
133
|
+
df2 = df[mask]
|
134
|
+
print(df2)
|
135
|
+
# Col1 Col2
|
136
|
+
# 0 A 31
|
137
|
+
# 1 A 2
|
138
|
+
```
|
2
d
answer
CHANGED
@@ -67,4 +67,8 @@
|
|
67
67
|
|
68
68
|
df = pd.read_csv("book1.csv", encoding="shift_jis")
|
69
69
|
plot(df, bean_number="B2")
|
70
|
-
```
|
70
|
+
```
|
71
|
+
|
72
|
+

|
73
|
+
|
74
|
+
bean_number をコードに直接書く代わりにコマンドライン引数で渡したい場合は argparse モジュールをお使いください。
|
1
d
answer
CHANGED
@@ -35,7 +35,7 @@
|
|
35
35
|
if df.empty:
|
36
36
|
print(f"bean number {bean_number} does not exist in the data frame.")
|
37
37
|
return
|
38
|
-
bean_name =
|
38
|
+
bean_name = df.iloc[0]["Sumple"]
|
39
39
|
# -------------------------------------
|
40
40
|
|
41
41
|
fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(40, 10))
|