当轴= 1不起作用时,为什么pandas会扩展计数

问题描述 投票:1回答:1

我有一个数据帧,如:

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

我在这里想念的是什么?

python pandas count
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.