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

如何使用Pandas读取CSV并将特定行转为分类列

解决方案(基于Pandas)

假设你的CSV文件列名为Product, Quantity, Unit $, Total $,可以按以下步骤处理:

  1. 导入依赖并读取CSV
    先导入Pandas库,读取原始CSV文件:

    import pandas as pd
    
    # 读取CSV,若列名有特殊情况可调整参数,比如用header=0指定第一行为列名
    df = pd.read_csv('your_sales_report.csv')
    
  2. 标记并提取卖家信息
    卖家行的特征是Quantity/Unit $/Total $为空,仅Product列有卖家标识。新增SELLER列,将卖家行的Product值填入,非卖家行暂留空:

    # 判断是否为卖家行:Quantity为空且Product不为空(可根据实际报表结构调整判断逻辑)
    is_seller_row = df['Quantity'].isna() & df['Product'].notna()
    
    # 给SELLER列赋值:卖家行取Product的值,其他行设为NaN
    df['SELLER'] = df.loc[is_seller_row, 'Product']
    
  3. 向前填充卖家信息
    用ffill()方法将卖家信息填充到下方所有对应的商品行:

    df['SELLER'] = df['SELLER'].ffill()
    
  4. 清理无效的卖家行
    过滤掉原始的卖家行(这类行无有效销售数据):

    # 保留非卖家行,即Quantity不为空的行,重置索引避免断号
    final_df = df[~is_seller_row].reset_index(drop=True)
    
  5. 可选:整理卖家名称
    如果卖家标识是1 - JOHN这类带编号的格式,可提取纯名字:

    final_df['SELLER'] = final_df['SELLER'].str.split(' - ', expand=True)[1]
    

示例效果

原始CSV内容:

Product,Quantity,Unit $,Total $
1 - JOHN,,,
Apple,10,5,50
Banana,20,3,60
2 - JACK,,,
Orange,15,4,60
Grape,5,10,50

处理后final_df的结果:

ProductQuantityUnit $Total $SELLER
Apple10550JOHN
Banana20360JOHN
Orange15460JACK
Grape51050JACK

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:57:25