python - 数据框内的比较

标签 python python-3.x pandas dataframe

我有来自 CSV 文件的数据列表,如下所示:

enter image description here

我希望找到其值位于某个区间内的所有成员的列表。对于前。从随附的数据集中,查找powerlevel在 675000 到 750000 之间的所有战士的列表。

在我输入的以下代码中,运算符“and”、“or”、“&”、“|”不工作并返回 ValueError

strong = df[['name', 'attack', 'defense', 'HP','armour','powerlevel']][df.powerlevel > 675000 & df.powerlevel < 750000]
print(strong)

我收到以下错误-

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

如何解决这个问题,而不需要每次都创建不同的数据框?

最佳答案

您可以使用loc

strong = df.loc[(df.powerlevel > 675000) & (df.powerlevel < 750000)]
strong = strong[['name', 'attack', 'defense', 'HP','armour','powerlevel']]

关于python - 数据框内的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57285391/

相关文章:

c++ - 在 python 中使用链接库中的方法时出现属性错误

python - 修改使用 from ... import * 导入的模块中的变量

python - 将两个数据框与其中一列内的列表合并

python - 以编程方式运行 Bokeh 服务器以在本地浏览器中显示

python - 无法将 16 位数字转换为人类可读的日期

python - 改善非常慢的 python 代码的执行时间

python - pynamodb last_evaluated_key 始终返回 null

python - 在 sqlalchemy 中将选定的日期时间转换为日期

python - 用@property 注释的方法的类型提示

Python Pandas - 根据值删除行