pandas:DataFrameの要素数を維持してデータを取得する方法

スポンサーリンク

DataFrameの要素数を維持してデータを取得する方法

DataFrameの要素数を維持してデータを取得するにはwhereを使用します。

条件に一致しない場合はデフォルトではNaNに置換されますが、引数で指定することもできます。

test.csvのデータ

id,name,count,rating
1,abc,13,4.38
2,defgh,4,8.56
3,ij,0,1.25
4,klmnopq,23,3.49
5,rst,11,0.51
import pandas as pd

df = pd.read_csv("test.csv")
print(df)
#    id     name  count  rating
# 0   1      abc     13    4.38
# 1   2    defgh      4    8.56
# 2   3       ij      0    1.25
# 3   4  klmnopq     23    3.49
# 4   5      rst     11    0.51

print(df.loc[df["rating"] < 3])
#    id name  count  rating
# 2   3   ij      0    1.25
# 4   5  rst     11    0.51

print(df.where(df["rating"] < 3))
#     id name  count  rating
# 0  NaN  NaN    NaN     NaN
# 1  NaN  NaN    NaN     NaN
# 2  3.0   ij    0.0    1.25
# 3  NaN  NaN    NaN     NaN
# 4  5.0  rst   11.0    0.51

print(df.where(df["rating"] < 3, 0))
#    id name  count  rating
# 0   0    0      0    0.00
# 1   0    0      0    0.00
# 2   3   ij      0    1.25
# 3   0    0      0    0.00
# 4   5  rst     11    0.51