Python - 通过按唯一 ID 拆分的数字列的差异扩展数据框

我想参考 ID 将计算出的差异添加到现有数据框。差异被保存到单独的数据框。


实际的 dataFrame 具有以下视图df1:


 Id   Col1   Col2  Col3

 567   6       7    9

 567   8       10   18 

 567   9       11   20  

 567   10      12   30   

 567   4       16   57

 ...   ...     ...  ...

 1568   6       7     9

 1568   8       10   18 

 1568   9       11   20  

 1568   10      12   30   

 1568   4       16   57

df2为每个 Id 分别保存计算的差异,例如Id=567:


 Col1_d1  Col2_d1   Col3_d1

  NaN       NaN       NaN

  -2        -3        -9 

  -1        -1        -2  

  -1        -1        -10   

   6        -4        -27

此外,NaN我填充的值0。


我尝试使用groupbyand map,但没有成功。


L1 = [x for _, x in df1.groupby(df1['Id'])]


df2鉴于所需的分组方式,我如何将其与我的第二个数据帧合并Id?


我试图通过以下方式做到这一点: list(map(lambda x: df1.append(x), L1))


预期结果:


 Id   Col1   Col2  Col3  Col1_d1  Col2_d1   Col3_d1

 567   6       7    9      0          0        0

       8       10   18     -2        -3        -9 

       9       11   20     -1        -1        -2 

       10      12   30     -1        -1        -10    

       4       16   57      6        -4        -27

 1568  6       7    9       0         0        0

       8       10   18     -2        -3        -9 

       9       11   20     -1        -1        -2 

       10      12   30     -1        -1        -10    

       4       16   57      6        -4        -27

我感谢任何想法和帮助。谢谢!


函数式编程
浏览 151回答 1
1回答

动漫人物

按用途固定: df1.reset_index(inlace = True) df2['index'] = df1['index'] dfList = [df1, df2] reduce(lambda x, y: pd.merge(x, y, on = 'index'), dfList)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python