Think Twice
IT技術メモ | Pythonのメモ
Created: 2021-11-07 / Updated: 2021-11-07

pandasのSeriesのデータを絞り込む


目次


概要

pandasSeriesのデータを絞り込む方法をメモしておきます。

boolのリストを取得

pandasSeriesのデータからboolのリストやSeriesを取得します。
ここでは例として以下のようなSeriesを利用します。

Copy
import pandas as pd

ser = pd.Series(["晴れ", "雨", "くもり","晴れ時々くもり", "雨"])
print(ser)
Copy
0         晴れ
1          雨
2        くもり
3    晴れ時々くもり
4          雨
dtype: object

完全一致

完全一致する場合Trueを返却するようにする場合は==を利用します。

Copy
print(ser == "雨")

Copy
0    False
1     True
2    False
3    False
4     True
dtype: bool

含まれる文字列(str.contains)

Copy
print(ser.str.contains("時々"))
Copy
0    False
1    False
2    False
3     True
4    False
dtype: bool

指定文字で終わる(str.endswith)

Copy
print(ser.str.endswith("くもり"))
Copy
0    False
1    False
2     True
3     True
4    False
dtype: bool

指定文字で始まる(str.startswith)

Copy
print(ser.str.startswith("晴れ"))
Copy
0     True
1    False
2    False
3     True
4    False
dtype: bool

絞り込み

Copy
print(ser[ser == "雨"])
Copy
1    雨
4    雨
dtype: object

リスト内包表記にて

boolのリストであれば良いので、以下のようなリスト内包表記でも同じ結果が得られます。

Copy
print(ser[[x == "雨" for x in ser]])

Copy
1    雨
4    雨
dtype: object

参考

サンプルソース

参考サイト