Mi problema es bastante sencillo, tengo la siguiente línea:
df_Return[df_Return['Aural'] >0].count()
Donde df_return es una trama de datos con una sola columna de float64 entre -1 y 1,
Tengo el siguiente error cuando intento evaluarlo:
Boolean array expected for the condition, not float64
¿Hay algo que me estoy perdiendo en algún lugar? Gracias
2 respuestas
Si desea contar los elementos por encima de 0, en realidad suma los valores True
. Count le daría la cantidad de elementos en su DataFrame / Series.
Ejemplo:
df = pd.DataFrame(np.random.randn(100))
(df > 0).sum()
# e.g. 51
(df > 0).count()
# 100 elements
Para su ejemplo dado, supongo que este código funcionará:
(df_Return['Aural'] > 0).sum()
Parece que tiene una versión del paquete pandas
que tiene un error de acuerdo con estos problemas:
https://github.com/quantopian/zipline/issues/2390
https://github.com/pandas-dev/pandas/issues/17170
Puede intentar actualizar su paquete pandas
utilizando los siguientes comandos:
pip install --upgrade pandas
conda update pandas (if you work in Anaconda environment)
Reproduciendo su enfoque usando la versión 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
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.