python - 如何获取按另一列分组的列出现的百分比?Python
问题描述
我正在尝试根据相关国家/地区计算产品(具有数百种不同产品)的出现百分比。我希望这个 % 显示在另一列
我设法在图表中做到了,但它在视觉上并不令人愉悦。
我尝试了以下代码:
df = data1.groupby('Country')
df['percent'] = (df['Products'] /
df['Products'].value_counts())*100
df
我收到以下错误消息:“ValueError:操作数无法与形状 (111,2) (4209,) 一起广播”
我还通过修改它以适合我的数据框尝试了类似以下的操作,但没有成功。
gb = df.groupby("country")
gb['result'].agg(lambda x: len(x[x=="Fail"]) / len(x)).sort_values(by="% fail", ascending=False)
总而言之,我想要一些看起来像这样的东西:
Countries Products Percentage
0 Country 1 Product 1 0.5
1 Country 1 Product 2 0.01
2 Country 2 Product 1 0.2
3 Country 2 Product 2 0.05
等等。
预先感谢您的帮助!
解决方案
我想你想要:
df['percent'] = df.groupby('Country')['Products'].value_counts(normalize=True) * 100
推荐阅读
- python - Keras ImageDataGenerator flow_from_dataframe 返回 KeyError
- java - 如何正确组合我的循环(Java)?
- angular - 带有库的 Angular 6 应用程序:保持子项目版本同步
- javascript - 在没有变异的嵌套数组中更新数组
- javascript - 注入的 JS 可以将点击下载的文件重定向到预定义的文件路径吗?
- c# - 在 C# 中使用 WriteAllBytes 时,将文件保存在文件夹中时出现问题,该文件来自服务器上的类型 byte []
- loops - Arduino void loop() 函数没有循环
- c - 使用 fopen_s 打开文件流时未处理的异常访问冲突
- python - 平方和函数
- python - 变量没有被垃圾收集导致 C++ 进程内存增加