回答編集履歴

5

d

2019/07/23 15:41

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -202,7 +202,7 @@
202
202
 
203
203
  以下の例で説明すると、
204
204
 
205
- 1. df["Col1"] で Col1 列を Series オブジェクト (1次元配列) で取得する。
205
+ 1. df["Col1"] で Col1 列を Series オブジェクト (1次元配列) で取得する。
206
206
 
207
207
  2. df["Col1"] == "A" で値が "A" のインデックスは True、そうでないインデックスは False のブール型の Series オブジェクトが返る。
208
208
 

4

っd

2019/07/23 15:41

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -204,7 +204,7 @@
204
204
 
205
205
  1. df["Col1"] で列 Col1 列を Series オブジェクト (1次元配列) で取得する。
206
206
 
207
- 2. df["Col1"] == "A" で値が "A" のインデックスは True、そうでない要素は False のブール型の Series オブジェクトが返る。
207
+ 2. df["Col1"] == "A" で値が "A" のインデックスは True、そうでないインデックスは False のブール型の Series オブジェクトが返る。
208
208
 
209
209
  3. DataFrame の [] にブール型の Series オブジェクトを渡すことで、値が True のインデックスの行だけを抽出できる。
210
210
 

3

d

2019/07/23 15:37

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -145,3 +145,131 @@
145
145
 
146
146
 
147
147
  bean_number をコードに直接書く代わりにコマンドライン引数で渡したい場合は argparse モジュールをお使いください。
148
+
149
+
150
+
151
+ ## 追記
152
+
153
+
154
+
155
+ > フォーマット済み文字列リテラル自体初めて見たので、(自分のキャパの問題で)まだ完全に理解しきれていませんが、少し自分の方で調べてみます。
156
+
157
+
158
+
159
+ Python 3.6 以降で利用できる言語機能です。
160
+
161
+ 変数を文字列の中に埋め込むやり方は以下の3つがあります。(上から古い順)
162
+
163
+ f-string はわりと最近追加された機能なので、ネット上のコードは format() を使っているものが多いですが、シンプルにかけるので気に入っています。
164
+
165
+
166
+
167
+ ```python
168
+
169
+ val = 123
170
+
171
+
172
+
173
+ # Python 2
174
+
175
+ s = 'val == %d' % val
176
+
177
+ print(s) # val == 123
178
+
179
+
180
+
181
+ # format() (Python 3 以降)
182
+
183
+ s = 'val == {}'.format(val)
184
+
185
+ print(s) # val == 123
186
+
187
+
188
+
189
+ # f-string (Python 3.6 以降)
190
+
191
+ s = f'val == {val}'
192
+
193
+ print(s) # val == 123
194
+
195
+ ```
196
+
197
+
198
+
199
+ > Python的にはどの文法用法なのか教えて頂けませんか?
200
+
201
+
202
+
203
+ 以下の例で説明すると、
204
+
205
+ 1. df["Col1"] で列 Col1 列を Series オブジェクト (1次元配列) で取得する。
206
+
207
+ 2. df["Col1"] == "A" で値が "A" のインデックスは True、そうでない要素は False のブール型の Series オブジェクトが返る。
208
+
209
+ 3. DataFrame の [] にブール型の Series オブジェクトを渡すことで、値が True のインデックスの行だけを抽出できる。
210
+
211
+
212
+
213
+ numpy のブールインデックスと似た機能です。
214
+
215
+
216
+
217
+ [NumPy配列のブールインデックス参照](https://hydrocul.github.io/wiki/numpy/ndarray-ref-boolean.html)
218
+
219
+
220
+
221
+ 実装上の話をすると、Python では自作のクラスで、`[]` や `==` などの演算子をオーバーライドできるので、このような仕組みを実現できています。
222
+
223
+
224
+
225
+ ```python
226
+
227
+ import pandas as pd
228
+
229
+
230
+
231
+ df = pd.DataFrame({'Col1': ['A', 'A', 'B', 'C'],
232
+
233
+ 'Col2': [31, 2, 3, 4]})
234
+
235
+ print(df)
236
+
237
+ # Col1 Col2
238
+
239
+ # 0 A 31
240
+
241
+ # 1 A 2
242
+
243
+ # 2 B 3
244
+
245
+ # 3 C 4
246
+
247
+
248
+
249
+ mask = df["Col1"] == "A"
250
+
251
+ print(mask)
252
+
253
+ # 0 True
254
+
255
+ # 1 True
256
+
257
+ # 2 False
258
+
259
+ # 3 False
260
+
261
+ # Name: Col1, dtype: bool
262
+
263
+
264
+
265
+ df2 = df[mask]
266
+
267
+ print(df2)
268
+
269
+ # Col1 Col2
270
+
271
+ # 0 A 31
272
+
273
+ # 1 A 2
274
+
275
+ ```

2

d

2019/07/23 15:34

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -137,3 +137,11 @@
137
137
  plot(df, bean_number="B2")
138
138
 
139
139
  ```
140
+
141
+
142
+
143
+ ![イメージ説明](6d8678e05d7bb2050b4074b2e26e03f4.png)
144
+
145
+
146
+
147
+ bean_number をコードに直接書く代わりにコマンドライン引数で渡したい場合は argparse モジュールをお使いください。

1

d

2019/07/23 15:02

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -72,7 +72,7 @@
72
72
 
73
73
  return
74
74
 
75
- bean_name = data.iloc[0]["Sumple"]
75
+ bean_name = df.iloc[0]["Sumple"]
76
76
 
77
77
  # -------------------------------------
78
78