在Python中使用groupby划分两个数据框

杆2292

我试图弄清楚如何从不同的数据集中划分两列,并按一个公用键进行分组,以获得一个百分比。

表格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  

我要划分变量sumtable 1sumtable 2由分组IDTYPE

目的是获得下表,该表代表sumbyTYPE的百分比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')`
pp

你不需要groupby; 您的操作更接近于merge在这种情况下,您可以从创建序列映射table1

s = table1.set_index('ID')['sum']

然后将其用于您的计算table2

table2['sum_percent'] = table2['sum'] / table2['ID'].map(s)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章