Pandas如何对列名不同但含义相同的两个DataFrame做行合并
Pandas 同结构不同列名DataFrame合并方案
pd.concat默认会根据列名对齐进行合并,两个DataFrame列名不同时就会生成8列的结果。你只需要在合并前将df2的列名临时/永久修改为和df1一致即可,具体操作如下:
方法1:临时修改df2列名(不改变原df2结构)
import pandas as pd # 合并时直接为df2设置和df1相同的列名,ignore_index=True重置合并后的行索引 df3 = pd.concat([df1, df2.set_axis(df1.columns, axis=1)], ignore_index=True)
方法2:先修改df2列名再合并
import pandas as pd # 永久修改df2的列名和df1对齐 df2.columns = df1.columns df3 = pd.concat([df1, df2], ignore_index=True)
两种方法得到的df3都和你需要的结果完全一致。
注意:该方案仅适用于两个DataFrame对应位置的列存储信息一致、列顺序完全匹配的场景,如果你后续遇到列顺序不一致的情况,需要先调整df2的列顺序再修改列名。
内容的提问来源于stack exchange,提问作者András Czeitner
相关产品推荐
相关产品推荐

