使用Datafram计算条件

2024-09-30 10:27:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题很简单,我有以下几句话:

df_Return[df_Return['Aural'] >0].count()

其中df_return是一个数据帧,只有一列float64在-1和1之间

我在尝试评估时出现以下错误:

Boolean array expected for the condition, not float64

我有什么地方不见了吗? 谢谢


Tags: the数据dfforreturncount错误not
2条回答

如果要对0以上的元素进行计数,实际上是对True值求和。Count将给出数据帧/序列中的元素数

示例:

df = pd.DataFrame(np.random.randn(100))
(df > 0).sum()
# e.g. 51
(df > 0).count()
# 100 elements

对于给定的示例,我假设以下代码可以工作:

(df_Return['Aural'] > 0).sum()

似乎有一个版本的pandas包存在以下问题:

https://github.com/quantopian/zipline/issues/2390

https://github.com/pandas-dev/pandas/issues/17170

您可以尝试使用以下命令升级pandas包:

pip install  upgrade pandas

conda update pandas (if you work in Anaconda environment)

使用pandas0.23.4版本再现您的方法:

import pandas as pd
import numpy as np

print(pd.__version__)
# 0.23.4

df_return = pd.DataFrame(data=np.linspace(-1, 1, 100), columns=['Aural'])
print(df_return.head())
#       Aural
# 0 -1.000000
# 1 -0.979798
# 2 -0.959596
# 3 -0.939394
# 4 -0.919192

cnt = df_return[df_return['Aural'] > 0].count()
print(cnt['Aural'])
# 50

相关问题 更多 >

    热门问题