我试图弄清楚如何从不同的数据集中划分两列,并按公共(public)键分组,以获得百分比。
表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
。
目标是得到下表,代表sum
的百分比通过TYPE
和ID
.
表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')`
最佳答案
您不需要groupby
;您的操作更接近于合并
。在这种情况下,您可以从 table1
创建系列映射:
s = table1.set_index('ID')['sum']
然后使用它在table2
中进行计算:
table2['sum_percent'] = table2['sum'] / table2['ID'].map(s)
关于python - 在Python中使用groupby划分两个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50750918/