如何基于列名拼接多个DataFrame的行(处理列缺失场景)
解决方案
核心问题有两点:一是df2存在列名拼写错误,二是拼接时未开启自动列对齐,按以下步骤处理即可:
- 先修正
df2的列名拼写,将ration改为和df1一致的ratio,否则拼接时会生成独立无关列 - 使用pandas的
concat方法拼接,该方法会自动按列名对齐,缺失列默认填充空值 - 按需将空值替换为你需要的
none字符串
示例代码:
# 修正df2列名拼写 df2 = df2.rename(columns={'ration': 'ratio'}) # 拼接三个DataFrame,重置为连续索引 merge_df = pd.concat([df1, df2, df3], ignore_index=True) # 替换ratio列空值为'none' merge_df['ratio'] = merge_df['ratio'].fillna('none')
执行后输出的merge_df和你期望的结果完全一致。
内容的提问来源于stack exchange,提问作者Digital404
相关产品推荐
相关产品推荐

