Python 在pandas中使用数据帧时,如何在只有一些列相同的情况下附加数据帧?
如果我有一个像这样的数据框Python 在pandas中使用数据帧时,如何在只有一些列相同的情况下附加数据帧?,python,pandas,dataframe,Python,Pandas,Dataframe,如果我有一个像这样的数据框 rootID parentID jobID counter 0 A B D 0 1 E F G 0 2 A C D 0 3 E B F
rootID parentID jobID counter
0 A B D 0
1 E F G 0
2 A C D 0
3 E B F 0
4 E F G 0
还有一个数据框看起来像这样
rootID parentID StepID
0 A B 1
1 A F 2
2 A C 3
3 E B 4
4 E F 5
如何根据它们的共同键“rootID”和“parentID”将第二个数据帧附加到第一个数据帧,以便
rootID parentID jobID counter stepÌD
0 A B D 0 Null
1 E F G 0 Null
2 A C D 0 Null
3 E B F 0 Null
4 E F G 0 Null
5 A B Null Null 1
6 A F Null Null 2
7 A C Null Null 3
8 E B Null Null 4
9 E F Null Null 5
感谢您的帮助尝试,
pd.concat
,pandas具有内在的数据对齐功能,因此在使用此功能和大多数其他功能时,pandas将保持行索引标签和列标题对齐:
pd.concat([df, df2], ignore_index=True, sort=False)
输出:
rootID parentID jobID counter StepID
0 A B D 0.0 NaN
1 E F G 0.0 NaN
2 A C D 0.0 NaN
3 E B F 0.0 NaN
4 E F G 0.0 NaN
5 A B NaN NaN 1.0
6 A F NaN NaN 2.0
7 A C NaN NaN 3.0
8 E B NaN NaN 4.0
9 E F NaN NaN 5.0
注意:pandas有一个不幸的副作用,就是将包含NaN的数字列转换为浮点数据类型。试试看,
pd.concat
,pandas具有内在的数据对齐,因此在使用此函数和大多数其他函数时,pandas将保持行索引标签和列标题对齐:
pd.concat([df, df2], ignore_index=True, sort=False)
输出:
rootID parentID jobID counter StepID
0 A B D 0.0 NaN
1 E F G 0.0 NaN
2 A C D 0.0 NaN
3 E B F 0.0 NaN
4 E F G 0.0 NaN
5 A B NaN NaN 1.0
6 A F NaN NaN 2.0
7 A C NaN NaN 3.0
8 E B NaN NaN 4.0
9 E F NaN NaN 5.0
注意:熊猫有一个不幸的副作用,就是将包含NaN的数字列转换为浮点数据类型。如果我们使用
append
,情况是否相同?使用concat有什么好处?非常感谢。是的,请参见。如果我们使用append
,是否相同?使用concat有什么好处?非常感谢。是的,看。