我的pandas数据框中有一张表。 DF
id count price
1 2 100
2 7 25
3 3 720
4 7 221
5 8 212
6 2 200
我想从中创建一个新的数据帧(df2),选择count为2且price为100的行,count为7,价格为221
我的输出应为df2 =
id count price
1 2 100
4 7 221
我正在尝试使用df[df['count'] == '2' & df['price'] == '100']
但是收到错误
TypeError: cannot compare a dtyped [object] array with a scalar of type [bool]
答案 0 :(得分:7)
您已添加()
,因为&
的优先级高于==
:
df3 = df[(df['count'] == '2') & (df['price'] == '100')]
print (df3)
id count price
0 1 2 100
如果需要使用isin
检查多个值:
df4 = df[(df['count'].isin(['2','7'])) & (df['price'].isin(['100', '221']))]
print (df4)
id count price
0 1 2 100
3 4 7 221
但如果选中数字,请使用:
df3 = df[(df['count'] == 2) & (df['price'] == 100)]
print (df3)
df4 = df[(df['count'].isin([2,7])) & (df['price'].isin([100, 221]))]
print (df4)