2024-09-30 10:27:44 发布
网友
我的问题很简单,我有以下几句话:
df_Return[df_Return['Aural'] >0].count()
其中df_return是一个数据帧,只有一列float64在-1和1之间
我在尝试评估时出现以下错误:
Boolean array expected for the condition, not float64
我有什么地方不见了吗? 谢谢
如果要对0以上的元素进行计数,实际上是对True值求和。Count将给出数据帧/序列中的元素数
True
示例:
df = pd.DataFrame(np.random.randn(100)) (df > 0).sum() # e.g. 51 (df > 0).count() # 100 elements
对于给定的示例,我假设以下代码可以工作:
(df_Return['Aural'] > 0).sum()
似乎有一个版本的pandas包存在以下问题:
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
如果要对0以上的元素进行计数,实际上是对
True
值求和。Count将给出数据帧/序列中的元素数示例:
对于给定的示例,我假设以下代码可以工作:
似乎有一个版本的
pandas
包存在以下问题:https://github.com/quantopian/zipline/issues/2390
https://github.com/pandas-dev/pandas/issues/17170
您可以尝试使用以下命令升级
pandas
包:使用
pandas
0.23.4版本再现您的方法:相关问题 更多 >
编程相关推荐