如何在一个表中一起显示聚合计数和百分比

时间:2018-06-15 18:52:37

标签: python pandas dataframe counting

创建一个总结计数和百分比的输出表的最简单方法是什么?到目前为止,我只能编写单独的查询来提取总计数和百分比,但无法同时显示两个结果。

import pandas as pd

d = { 'color': ['RED', 'WHITE', 'RED', 'BLUE', 'BLUE'],
      'count': ['1', '1', '3', '2', '3']}

df = pd.DataFrame(d)

df.color.value_counts()
df.color.value_counts() / len(df)

1 个答案:

答案 0 :(得分:2)

你有正确的想法。避免重新计算value_counts的一种方法是通过pandas.concat

s = df.color.value_counts()
s_len = s / len(df.index)

res = pd.concat([s, s_len], axis=1)\
        .set_axis(['color', 'pct'], axis=1, inplace=False)

print(res)

       color  pct
BLUE       2  0.4
RED        2  0.4
WHITE      1  0.2

或者,您可以先将系列转换为数据框:

res = df.color.value_counts().to_frame('color')
res['pct'] = res['color'] / res['color'].sum()

print(res)

       color  pct
BLUE       2  0.4
RED        2  0.4
WHITE      1  0.2