如何使用python中的pandas查找数据帧中特定列的频率分布

2024-04-20 13:24:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个这样的数据框

df,
A   B   C   D   Final
a   b   c   d   Valid
a       c       Valid
a       c   d   Valid
a               Valid

我想计算最后一列中每列的百分比。你知道吗

我想要的结果是

output = a=4,b=1,c=3,d=2

请帮忙


Tags: 数据dfoutputfinal百分比valid
1条回答
网友
1楼 · 发布于 2024-04-20 13:24:36

如果缺少空值,请将^{}^{}一起使用:

print (df)
   A    B    C    D  Final
0  a    b    c    d  Valid
1  a  NaN    c  NaN  Valid
2  a  NaN    c    d  Valid
3  a  NaN  NaN  NaN  Valid

df = df.drop('Final', axis=1).count()
print (df)
A    4
B    1
C    3
D    2
dtype: int64

如果值是空字符串,则首先通过^{}sumTrue比较:

print (df)
   A  B  C  D  Final
0  a  b  c  d  Valid
1  a     c     Valid
2  a     c  d  Valid
3  a           Valid

df = df.drop('Final', axis=1).ne('').sum()
print (df)
A    4
B    1
C    3
D    2
dtype: int64

print (df.to_dict())
{'B': 1, 'A': 4, 'C': 3, 'D': 2}

d = df.div(len(df.index)).mul(100).to_dict()
print (d)
{'B': 25.0, 'A': 100.0, 'C': 75.0, 'D': 50.0}

相关问题 更多 >