如何使用Python的Pandas合并含重叠列的千行DataFrame?
解决Pandas合并重叠行的方案
假设你的DataFrame存在同一主体(如唯一ID)的行,各列数据互补缺失,我们可以通过以下步骤实现类似Excel示例的合并效果:
步骤1:构造示例数据(模拟你的Excel结构)
先模拟带有缺失值的重叠行场景:
import pandas as pd import numpy as np df = pd.DataFrame({ 'ID': [1,1,2,2], '姓名': ['张三', np.nan, '李四', np.nan], '年龄': [np.nan, 25, np.nan, 30], '城市': ['北京', np.nan, np.nan, '上海'] })
步骤2:分组合并非空值
如果有明确的分组标识列(如ID),按标识分组后提取每组的非空值:
# 按ID分组,合并每组内的非空数据 merged_df = df.groupby('ID', as_index=False).agg(lambda x: x.dropna().iloc[0] if not x.dropna().empty else np.nan)
如果没有明确标识列,仅靠列数据重叠互补,可以通过前后填充+去重实现:
# 先向后、向前填充缺失值,再去除重复行 merged_df = df.bfill().ffill().drop_duplicates()
验证合并结果
打印结果查看效果:
print(merged_df)
内容的提问来源于stack exchange,提问作者JAY100
相关产品推荐
相关产品推荐

