我试图比较两个包含新旧值的Pandas Dataframe 。一些id在新数据中被删除,一些被添加,所以索引不相同。我可以使用id作为索引,列作为轴,"第一个"和"第二个"作为键来连接 Dataframe 。但无法找到一种方法来保持两个 Dataframe 的顺序。data1的顺序被保留,但我希望data2的顺序也被保留。
我尝试了:
data1={'id':[1, 2, 3, 4, 5],'value':[10, 25, 12, 100, 26]}
data2={'id':[1, 2, 6, 4, 5],'value':[10, 24, 48, 100, 60]}
df = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
df_both = pd.concat([df.set_index('id'), df2.set_index('id')],
axis='columns', keys=['First', 'Second'])
print(df_both)
生成df_both:
First Second
value value
id
1 10.0 10.0
2 25.0 24.0
3 12.0 NaN
4 100.0 100.0
5 26.0 60.0
6 NaN 48.0
ID6被放置在 Dataframe 的底部,因为索引不存在于DATA1中。
作为结果df_both我想要什么:
First Second
value value
id
1 10.0 10.0
2 25.0 24.0
3 12.0 NaN
6 NaN 48.0
4 100.0 100.0
5 26.0 60.0
我希望删除的行和新的行保持它们的位置。
2条答案
按热度按时间xwbd5t1u1#
没有直接的方法可以做到这一点:
5sxhfpxr2#
您可以按照所需顺序连接临时列上的 Dataframe ,然后重置索引以获得所需结果。