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

时间:2017-12-25 05:03:43

标签: python pandas count

我有一个类似的数据框:

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

我在这里想念什么?

1 个答案:

答案 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