如何合并两个Pandas表格并保留所有值且按公共列有序排列
解决方法
你可以先通过外连接合并两个DataFrame保留所有A列取值,再对A列做升序排序即可实现需求,示例代码如下:
import pandas as pd # 构造示例数据 df = pd.DataFrame([[1, 3], [2, 4],[2.5,1],[5,6],[7,8]], columns=['A', 'B']) df2 = pd.DataFrame([[1],[2],[3],[4],[5],[6],[7],[8]], columns=['A']) # 合并+排序+重置索引 result = pd.merge(df, df2, how='outer', on='A').sort_values('A').reset_index(drop=True)
代码说明
how='outer'外连接会保留两个表A列的所有取值,不会丢失df中独有的2.5对应的行sort_values('A')会按A列的数值从小到大排序,解决外连接默认返回结果无序的问题reset_index(drop=True)为可选配置,作用是把合并排序后混乱的行索引重置为从0开始的连续序列
执行上述代码得到的result就和你期望的输出完全一致。
内容的提问来源于stack exchange,提问作者hello
相关产品推荐
相关产品推荐

