2017-12-25 4 views
1
Arbeits

Ich habe einen Datenrahmen wie:Warum Pandas Zahl erweitert, wenn Achse = 1 nicht

df = pd.DataFrame({'A': [0, 1, 2, np.nan, 4], 
       'B': [0, 1, 2, np.nan, 4], 
       'C': [0, 1, 2, np.nan, 4], 
       'D': [0, 1, 2, np.nan, 4], 
       'E': [0, 1, 2, np.nan, 4], 
       'F': [0, 1, 2, np.nan, 4]}) 

und ich erwarte, dass df.expanding (Achse = 1) .count wie Ergebnisse zu produzieren:

 A B  C  D  E  F 
0 1.0 2.0 3.0 4.0 5.0 6.0 
1 1.0 2.0 3.0 4.0 5.0 6.0 
2 1.0 2.0 3.0 4.0 5.0 6.0 
3 0.0 0.0 0.0 0.0 0.0 0.0 
4 1.0 2.0 3.0 4.0 5.0 6.0 

erzeugte jedoch die Ergebnisse sind die gleichen wie df2.expanding() count() tun würde.

 A B C D E F 
0 1.0 1.0 1.0 1.0 1.0 1.0 
1 2.0 2.0 2.0 2.0 2.0 2.0 
2 3.0 3.0 3.0 3.0 3.0 3.0 
3 3.0 3.0 3.0 3.0 3.0 3.0 
4 4.0 4.0 4.0 4.0 4.0 4.0 

Was habe ich hier vermissen?

Antwort

0

Es scheint wie expanding Methode Achse Parameter funktioniert nicht mit count(), wie es soll.

Die Problemumgehung für dieses Problem besteht darin, die Daten zu transponieren, dann die expandierende Methode mit count zu verwenden und sie zurück zu transponieren.

df1 = df.T.expanding().count().T 
print(df1) 

    A B C D E F 
0 1.0 2.0 3.0 4.0 5.0 6.0 
1 1.0 2.0 3.0 4.0 5.0 6.0 
2 1.0 2.0 3.0 4.0 5.0 6.0 
3 0.0 0.0 0.0 0.0 0.0 0.0 
4 1.0 2.0 3.0 4.0 5.0 6.0 
Verwandte Themen