将Pandas DataFrame中的2列与.loc进行比较
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Pandas DataFrame中的2列与.loc进行比较相关的知识,希望对你有一定的参考价值。
我想比较两个值为value(1)的列和列出满足此条件的行。这是我的代码:
import pandas as pd
df = pd.DataFrame({'col':[0,1,1,0,1],
'col2':[0,1,0,1,0],
'ord':[0,1,2,3,4]
})
df1 = df.loc[df['col'] == 1 & df['col2'] == 1]
print(df1)
预期产量:
col col2 ord
0 1 1 1
但我得到:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
答案
添加括号,因为&
运算符的优先级优先级:
df1 = df.loc[(df['col'] == 1) & (df['col2'] == 1)]
以上是关于将Pandas DataFrame中的2列与.loc进行比较的主要内容,如果未能解决你的问题,请参考以下文章
如何将 DataFrame(包括数组)中的两列与 CSV(Dataframe/Dictionary)中的两列匹配
Pandas Multiindex Groupby 聚合列与另一列的值