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

如何保留原DataFrame数据,拆分列内容填充NaN值列?

解决方案

要实现需求同时保留原DataFrame的所有数据,核心是仅定位并更新符合条件的行,而非单独提取处理后丢失原数据。具体步骤如下:

  1. 读取数据并纠正语法错误
    注意pd.load_csv是笔误,正确写法为pd.read_csv:

    import pandas as pd
    df = pd.read_csv("data.csv")
    
  2. 创建条件掩码定位目标行
    精准筛选出Task为NaN且Room包含'closed'(不区分大小写)的行:

    mask = df['Task'].isna() & df['Room'].str.contains('closed', case=False)
    
  3. 拆分目标行的Room列
    使用正向预查正则(?=closed)拆分字符串,确保'closed'及后续内容作为拆分后的第二部分:

    split_result = df.loc[mask, 'Room'].str.split("(?=closed)", expand=True)
    
  4. 更新原DataFrame的对应列
    将拆分后的前半部分赋值回Room列,后半部分填充Task列的NaN值,仅更新符合条件的行:

    df.loc[mask, 'Room'] = split_result[0]
    df.loc[mask, 'Task'] = split_result[1]
    

执行完上述代码后,原DataFrame的其他行和列都会保持不变,仅目标行完成拆分更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 18:45:09