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