我正在尝试根据相关国家/地区计算产品(包含数百种不同产品)的出现百分比。我希望将此%显示在另一列上
我设法在图形中做到了,但是视觉上并不令人满意。
我尝试了以下代码:
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
以此类推。
预先感谢您的帮助!
答案 0 :(得分:0)
我想你想要
df['percent'] = df.groupby('Country')['Products'].value_counts(normalize=True) * 100