如何以最有效的方式将4个数据帧合并为一个原始数据帧?
下面显示了原始数据帧df
,其4列CC1
、CC2
、CC3
和CC4
需要使用df1
、df2
、df3
和df4
中的相应列进行更新
所有数据帧的公共列是TD
和PD
编辑
df
TD PD CC1 CC2 CC3 CC4 A B C
10 1 Null Null Null Null 1 1 0
10 2 Null Null Null Null 0 1 1
10 3 Null Null Null Null Null 2 Null
20 1 Null Null Null Null Null 0 1
20 4 Null Null Null Null 2 Null Null
30 1 Null Null Null Null 4 0 2
30 3 Null Null Null Null 8 Null 5
30 5 Null Null Null Null Null 1 1
40 2 Null Null Null Null 0 0 0
df1
TD PD CC1
10 2 0
20 1 5
20 4 2
30 3 10
df2
TD PD CC2
10 1 15
10 2 10
20 4 20
df3
TD PD CC3
10 3 0
20 4 5
30 1 9
df4
TD PD CC4
20 4 0
30 1 15
30 3 20
合并后的预期输出如下所示:
df
TD PD CC1 CC2 CC3 CC4 A B C
10 1 Null 15 Null Null 1 1 0
10 2 0 10 Null Null 0 1 1
10 3 Null Null 0 Null Null 2 Null
20 1 5 Null Null Null Null 0 1
20 4 2 20 5 0 2 Null Null
30 1 Null Null 9 15 4 0 2
30 3 10 Null Null 20 8 Null 5
30 5 Null Null Null Null Null 1 1
40 2 Null Null Null Null 0 0 0
这里df
(A
、B
和C
)中的其他额外列不受影响。
此外,df1、df2、df3和df4中的总行数不等于df中的行数。如何以最快的方式实现这一点,可以在一个语句中完成,或者在这里使用4个不同的语句
非常感谢您的帮助。非常感谢
在列表理解中使用^{} 通过} 进行外部连接,然后使用^{} 将
TD
创建MultiIndex
和PD
通过^{MultiIndex
创建到列:编辑:错误表示组合
TD
、PD
中存在重复项一个想法是删除重复的行,因此输出中只有第一个值:
另一个想法是聚合的,例如通过
sum
:相关问题 更多 >
编程相关推荐