熊猫df中的值计数

时间:2018-07-08 04:39:52

标签: python pandas

我正在尝试countvalues的金额pandas df。我想通过rowrow。因此,对于下面的df,我想count导出的每个valuescolumn的{​​{1}}的数量row

row

我尝试使用以下方法做到这一点:

d = ({
    'A' : [[(1,2),(3,4)],[(1,2)],[()],[(1,2)]],     
    'B' : [[(1,2)],[(1,2)],[(1,2),(3,4)],[(1,2)]],
    'C' : [[(1,2)],[()],[()],[()]],            
    'D' : [[()],[(1,2),(3,4)],[(1,2),(3,4)],[()]], 
    })

df = pd.DataFrame(data=d)

输出

l = ([len(i) for i in df])

我希望预期的输出是:

[1, 1, 1, 1]

1 个答案:

答案 0 :(得分:0)

applymapif-else一起使用:

df = df.applymap(lambda x: len(x) if x != [()] else 0)
#alternative
#df = df.applymap(lambda x: 0 if x == [()] else len(x))
print (df)
   A  B  C  D
0  2  1  1  0
1  1  1  0  2
2  0  2  0  2
3  1  1  0  0

最后一次是否需要转置输出:

df1 = pd.DataFrame(df.T.values, index=df.index, columns=df.columns)
print (df1)
   A  B  C  D
0  2  1  0  1
1  1  1  2  1
2  1  0  0  0
3  0  2  2  0