我正在尝试弄清楚如何从不同的数据集中划分两列,通过一个公共键进行分组,以便获得百分比。
表1
Index ID sum
0 100001 7
1 100002 8
2 100003 4
表2
Index ID TYPE sum
0 100001 A 7
1 100002 A 4
2 100002 B 4
3 100003 A 2
4 100003 B 2
我想将变量sum
从table 1
除以sum
从table 2
除以ID
和TYPE
分组。
我们的目标是获得下面的表格,它表示TYPE
和ID
在sum
中所占的百分比。
表3
Index ID TYPE sum_percent
0 100001 A 1.0
1 100002 A 0.5
2 100002 B 0.5
3 100003 A 0.5
4 100003 B 0.5
我尝试了一些代码来解决这个问题,比如下面这个问题,但它抛出了一个错误消息。似乎问题出在groupby
语句中。
`table_1[['sum']].groupby('ID')/table_2[['sum']].groupby('ID')`
发布于 2018-06-08 07:14:56
您不需要groupby
;您的操作更接近于merge
。在这种情况下,您可以从table1
创建系列映射
s = table1.set_index('ID')['sum']
然后在table2
中使用它进行计算
table2['sum_percent'] = table2['sum'] / table2['ID'].map(s)
https://stackoverflow.com/questions/50750918
复制相似问题