gpt4 book ai didi

python - Pandas 将 df.count() 结果的最后 n 行求和为一行

转载 作者:行者123 更新时间:2023-12-05 08:44:50 25 4
gpt4 key购买 nike

我正在寻找一种方法来生成数据框的漂亮摘要统计信息。考虑以下示例:

>> df = pd.DataFrame({"category":['u','v','w','u','y','z','y','z','x','x','y','z','x','z','x']})

>> df['category'].value_counts()
z 4
x 4
y 3
u 2
v 1
w 1

>> ??
count pct
z 4 27%
x 4 27%
y 3 20%
Other (3) 4 27%

结果将最后 n=3 行的值计数相加,删除它们,然后将它们作为一行添加到原始值计数中。将所有内容都作为百分比也很好。任何想法如何实现这个?干杯!

最佳答案

对于具有百分比的 DataFrame,请使用 Series.iloc通过索引,通过 Series.to_frame 创建 DataFrame , 添加由百分比填充的新行和新列:

s = df['category'].value_counts()

n= 3
out = s.iloc[:-n].to_frame('count')
out.loc['Other ({n})'] = s.iloc[-n:].sum()
out['pct'] = out['count'].div(out['count'].sum()).apply(lambda x: f"{x:.0%}")
print (out)
count pct
z 4 27%
x 4 27%
y 3 20%
Other (3) 4 27%

关于python - Pandas 将 df.count() 结果的最后 n 行求和为一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75196357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com