将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进行比较的主要内容,如果未能解决你的问题,请参考以下文章

Python Pandas:将数据框的列与列名合并为一列

如何将 DataFrame(包括数组)中的两列与 CSV(Dataframe/Dictionary)中的两列匹配

Pandas DataFrame 将多列值堆叠到单列中

Pandas Multiindex Groupby 聚合列与另一列的值

Pyspark - 如何将转换后的列与原始 DataFrame 合并?

Pandas Dataframe Number Values Comma Formated