python - Python - 通过唯一ID拆分的数字列的差异扩展数据框
问题描述
我想参考 ID 将计算出的差异添加到现有数据框。差异被保存到单独的数据框中。
实际数据帧具有以下视图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
分别为每个 Id保存计算的差异df2
,例如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
.
我尝试使用groupby
and 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
我感谢任何想法和帮助。谢谢!
解决方案
按用法固定:
df1.reset_index(inlace = True)
df2['index'] = df1['index']
dfList = [df1, df2]
reduce(lambda x, y: pd.merge(x, y, on = 'index'), dfList)
推荐阅读
- h2o - 在 AutoML H2O 上使用 balance_classes 生成错误“java.lang.IllegalArgumentException: Error during sampling - too little points?”
- javascript - 如何通过 Webpack 捆绑 Nunjucks 文件
- python - PySerial 报告看似未使用的串行端口的“资源忙”
- ios - UIPrintInteractionController 在不应该将单个页面分成多个页面时
- python - 没有名为“custom_transforms”的模块
- swift - 文件名使用了两次 Xcode
- arrays - 如何找到数组中的所有对,以使对的总和有效地等于对的乘积?
- regex - 如何使用 Jest testPathIgnorePatterns(React、Jest、Regex)忽略文件名约定
- python - PyQt5 应用程序无法在 Mac 上正确终止
- ajax - 使用 jquery/ajax 为 REST API 上传文件