les pandas concat génère des valeurs nan
Je suis curieux de savoir pourquoi une simple concaténation de deux trames de données dans les pandas:
shape: (66441, 1)
dtypes: prediction int64
dtype: object
isnull().sum(): prediction 0
dtype: int64
shape: (66441, 1)
CUSTOMER_ID int64
dtype: object
isnull().sum() CUSTOMER_ID 0
dtype: int64
de la même forme et sans valeurs NaN
foo = pd.concat([initId, ypred], join='outer', axis=1)
print(foo.shape)
print(foo.isnull().sum())
peut entraîner beaucoup de valeurs NaN si rejoint.
(83384, 2)
CUSTOMER_ID 16943
prediction 16943
Comment puis-je résoudre ce problème et éviter NaN valeurs introduites?
Essayer de le reproduire comme
aaa = pd.DataFrame([0,1,0,1,0,0], columns=['prediction'])
print(aaa)
bbb = pd.DataFrame([0,0,1,0,1,1], columns=['groundTruth'])
print(bbb)
pd.concat([aaa, bbb], axis=1)
échoué, par exemple, a très bien fonctionné comme NaN valeurs ont été introduites.
OriginalL'auteur Georg Heiler | 2016-10-31
Vous devez vous connecter pour publier un commentaire.
Je pense qu'il y a problème avec les différentes valeurs de l'indice, de sorte où
concat
ne peut pas aligner obtenirNaN
:Solution est
reset_index
si les indices de valeurs ne sont pas nécessaires:Hmmm, si reset indice est encore le même problème?
En effet, votre commentaire à partir de ci-dessus avec
pd.concat([ypred.reset_index(drop=True), initId.reset_index(drop=True)], axis=1)
travaillent bien! Merci beaucoup.merci, c'résoudre mon problème
Il semble que toute suppression de lignes doit être suivie par
reset_index
pour éviter une telle indexation des problèmes plus tard dans la transformation.OriginalL'auteur jezrael