我有一个类似的数据框:
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]})
我期望df.expanding(axis = 1).count产生如下结果:
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
但是,产生的结果与df2.expanding()相同.count()会这样做:
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
我在这里想念什么?
答案 0 :(得分:0)
似乎expanding
方法的轴参数不适用于count()
。
此问题的解决方法是转置数据,然后使用带有count的扩展方法并将其转置回来。
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