用数据框计算条件

我的问题很简单,我有以下一行:

  

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

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

当我尝试评估它时,出现以下错误:

Boolean array expected for the condition,not float64

我某处缺少什么吗? 谢谢

liusha7258322 回答:用数据框计算条件

如果要计数个大于0的元素,则实际上是对True值求和。 Count将为您提供DataFrame / Series中元素的数量。

示例:

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)

使用pandas 0.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
本文链接:https://www.f2er.com/3167786.html

大家都在问