首页 > 解决方案 > df中所有列的值计数?

问题描述

我有一个df,例如:

Monday | Tuesday | Friday | January  | Weekday 
True      False     True     False      True
False     False     False    False      False
True      True      False    False      True
False     False     False    False      False

我想计算每列具有 True 和 False 的百分比,通常我会使用带有以下规范化参数的值计数:

df['Monday'].value_counts(normalize = True) 

输出:

Monday 
True   .5
False  .5

但是我怎样才能运行相同的代码,它会给我df中所有列的%,而不是每列手动执行呢?

谢谢!

标签: pythonpython-3.xpandas

解决方案


将值 value_counts 应用于 dataframe 。Groupby 结果数据框的索引和总和

g=df.apply(lambda x: x.astype(str).value_counts(normalize=True))
g.groupby(g.index).sum()



     Monday  Tuesday  Friday  January  Weekday
False     0.5     0.75    0.75      1.0      0.5
True      0.5     0.25    0.25      0.0      0.5

推荐阅读