You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas处理级联关联的Excel列,生成目标DataFrame?

问题描述

我有一个包含四列的Excel表格,各列单元格之间呈级联关联关系,原始表格内容如下:

Base Version   OS Package Name             Description  Version
0            A  NaN          NaN                     NaN      NaN
1          NaN    B          NaN                     NaN      NaN
2          NaN  NaN     b-01.zip  description about B-01      NaN
3          NaN  NaN     b-02.zip  description about B-02      NaN
4            X  NaN          NaN                     NaN      NaN
5          NaN    Y          NaN                     NaN      NaN
6          NaN  NaN     y-01.zip  description about Y-01      NaN
7          NaN  NaN     y-02.zip  description about Y-02      NaN

希望通过Pandas将其转换为如下格式的DataFrame(输出至Excel时呈现该样式):

Base Version   OS Package Name             Description  Version
2            A    B     b-01.zip  description about B-01      NaN
3          NaN  NaN     b-02.zip  description about B-02      NaN
6            X    Y     y-01.zip  description about Y-01      NaN
7          NaN  NaN     y-02.zip  description about Y-02      NaN

请问是否可以通过Pandas实现这一需求?

解决方案

完全可以实现,核心思路是通过**向前填充(ffill)**传递级联列的非空值,再筛选出有效数据行,具体操作步骤如下:

  • 读取原始Excel数据:

    import pandas as pd
    
    # 替换为你的实际文件路径
    df = pd.read_excel("your_input_file.xlsx")
    
  • 对Base Version和OS列执行向前填充,将上级非空值填充到后续的空值行中:

    df[["Base Version", "OS"]] = df[["Base Version", "OS"]].ffill()
    
  • 筛选出Package Name不为空的行(这些是包含实际包信息的有效行):

    filtered_df = df[df["Package Name"].notna()]
    
  • (可选)若需要保留原始行索引(如示例中的2、3、6、7),无需额外操作;若要重置索引,可执行:

    filtered_df = filtered_df.reset_index(drop=True)
    
  • 将处理后的结果输出到Excel:

    filtered_df.to_excel("your_output_file.xlsx", index=False)
    

执行完成后,得到的DataFrame格式将与你期望的完全一致。

内容的提问来源于stack exchange,提问作者Biplab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 13:25:06