D'abord, je l'ai faitQuand remplacer tous -1to np.NaN dans un pd.DataFrame de type int, int certains deviennent float
a = [[6,5,4,3,2],[1,2,3,4,5,6],[3,4,5,6]]
b = pd.DataFrame(a)
print(b.head(2))
La sortie est
1 2 3 4 5 6
6 5 4 3 2.00 NaN
1 2 3 4 5.00 6.00
3 4 5 6 NaN NaN
J'ai donc fait
a = [[6,5,4,3,2],[1,2,3,4,5,6],[3,4,5,6]]
b = pd.DataFrame(a).fillna(-1).astype(int)
print(b.head(2))
La sortie devient
1 2 3 4 5 6
6 5 4 3 2 -1
1 2 3 4 5 6
3 4 5 6 -1 -1
Mais je ne veux pas que ces -1, donc je l'ai fait
a = [[6,5,4,3,2],[1,2,3,4,5,6],[3,4,5,6]]
b = pd.DataFrame(a).fillna(-1).astype(int)
b = b.replace(-1, np.NaN)
print(b.head(2))
La sortie est à nouveau identique à la première fois
1 2 3 4 5 6
6 5 4 3 2.00 NaN
1 2 3 4 5.00 6.00
3 4 5 6 NaN NaN
Voir https://stackoverflow.com/questions/21287624/convert-pandas-column-containing-nans-to-dtype-int colonnes avec NaN ne peuvent pas être de type int. – Zero
@Zero là * doit * être une meilleure cible dupe, mais je ne peux pas trouver un atm ... –