我正在尝试通过操作输出一组 我的输入文件是: 在此输入图片描述
预期输出:
使用的代码:
df=pd.read_csv('testPCI.csv')
output= df.groupby(['Frequency'])['PCI'].count().to_excel("output.xlsx")
我得到了这个:
我怎样才能获得预期的输出,其中包括计数列以及%计数列。
尝试:
(dfc:=df.groupby(['Frequency','PCI'])['PCI'].count().rename('count').reset_index())\
.assign(count_pct=dfc['count']/dfc['count'].sum()*100).round(2)
输出:
Frequency PCI count count_pct
0 123 5 5 21.74
1 456 7 8 34.78
2 999 9 10 43.48
详情:
使用“walrus”运算符创建一个数据帧,使用 groupby 按频率对 PCI 进行计数。 然后使用创建的数据帧分配一个新列 count_pct 作为 count 除以 count 之和乘以 100 并四舍五入到小数点后两位。