Je suis nouveau faire dask (importé comme dd) et essayer de convertir certains pandas (importés en tant que pd) code.sous-sélection de colonnes dans dask (de pandas) par indexeur booléen calculé
L'objectif des lignes suivantes est de découper les données dans ces colonnes, dont les valeurs remplissent l'exigence calculée dans dask.
Il existe une table donnée dans csv. L'ancien code lit
inputdata=pd.read_csv("inputfile.csv");
pseudoa=inputdata.quantile([.035,.965])
pseudob=pseudoa.diff().loc[.965]
inputdata=inputdata.loc[:,inputdata.columns[pseudob.values>0]]
inputdata.describe()
et fonctionne bien. Mon idée simple pour la conversion était si remplacer la première ligne à
inputdata=dd.read_csv("inputfile.csv");
mais qui a entraîné le message d'erreur étrange IndexError: too many indices for array
. Même en basculant vers les données calculées en inputdata
et pseudob
, l'erreur persiste.
La question est peut-être spécifiquement associée à l'idée de découpage booléen calculé pour les colonnes dask.
Je viens de trouver un moyen (peut-être sous-optimal) (pas une solution) de le faire. Modification de la ligne 4 à la suivante
inputdata=inputdata.loc[:,inputdata.columns[(pseudob.values>0).compute()[0]]]
semble fonctionner.