gpt4 book ai didi

python - 使用两列从 pandas DataFrame 中选择行

转载 作者:行者123 更新时间:2023-11-28 21:53:06 24 4
gpt4 key购买 nike

我在 pandas 中有一个 DataFrame,我想根据两列的值从中选择行的子集。

test_df = DataFrame({'Topic' : ['A','A','A','B','B'], 'Characteristic' : ['Population','Other','Other','Other','Other'], 'Total' : [25, 22, 21, 20, 30]})

当我使用这段代码时,它按预期工作并返回第一行:

bool1 = test_df['Topic']=='A' 
bool2 = test_df['Characteristic']=='Population'

test_df[bool1 & bool2]

但是当我尝试如下所示在一行中完成所有操作时,

test_df[test_df['Topic']=='A' & test_df['Characteristic']=='Population']

我收到“TypeError:无法将 dtyped [object] 数组与类型 [bool] 的标量进行比较”

为什么?有没有一种一步完成此操作的好方法?

最佳答案

你只需要加上括号:

>>> test_df[(test_df['Topic']=='A') & (test_df['Characteristic']=='Population')]
Characteristic Topic Total
0 Population A 25

或者,您可以使用 query方法,以避免 test_df 的重复:

>>> test_df.query("Topic == 'A' and Characteristic == 'Population'")
Characteristic Topic Total
0 Population A 25

关于python - 使用两列从 pandas DataFrame 中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27110224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com