繁体   English   中英

使用 Dataframe 计数条件

[英]count over conditions with Dataframe

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

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

其中 df_return 是 dataframe ,只有一列介于 -1 和 1 之间的 float64,

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

Boolean array expected for the condition, not float64

我在某处缺少什么吗? 谢谢

如果要对 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 package 版本似乎存在错误:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM