我有两个数据帧,它们之间共享一个ID列. 第一个数据帧被拆分并发送给数据所有者进行更新. 一旦返回,它们将再次放回单个数据帧中. 现在已经更新了一个数据帧,其中包含尚未具有ID的新条目,并且其顺序也与最初不同. Df1是旧的,df2是新的 我希望根据df1中的ID列对df2进行排序,并将新条目留在底部. ID是随机生成的,没有顺序,这是设计出来的.
有什么好方法可以做到这一点吗? 我看了this个帖子,它利用了索引.我可以将我的ID列作为索引,但由于一些新条目还没有ID,所以这不起作用.
我对这里的情况做了一个模拟:
df=pd.DataFrame(columns=['Name','DataOwner','UniqueID'], data=[['P1',1,123],['P2',2,321],['P3',3,456]])
df2=pd.DataFrame(columns=['Name','DataOwner','UniqueID'], data=[['P1',1,123],['P4', 1, ],['P2',2,321],['P5',2,],['P3',3,456], ['P6', 3, ]])
这会产生以下两个数据帧:
Name DataOwner UniqueID
0 P1 1 123
1 P2 2 321
2 P3 3 456
Name DataOwner UniqueID
0 P1 1 123.0
1 P4 1 NaN
2 P2 2 321.0
3 P5 2 NaN
4 P3 3 456.0
5 P6 3 NaN
项目的名称是描述性文本,不能用于排序,数据所有者不会排序,只是放在那里说明数据是由数据所有者返回的,在我需要根据ID进行排序之前,将数据放在一个大的数据框中,并在底部添加新条目.
我想要的结果是:
Name DataOwner UniqueID
0 P1 1 123
1 P2 2 321
2 P3 3 456
Name DataOwner UniqueID
0 P1 1 123.0
2 P2 2 321.0
4 P3 3 456.0
1 P4 1 NaN
3 P5 2 NaN
5 P6 3 NaN
尽管新条目的顺序并不重要--它们只需要排在底部.