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

使用另一DataFrame填充Pandas DataFrame空字段并扩展记录

解决方法

可以通过拆分数据后合并,或者利用explode方法实现需求,以下是两种可行方案:

方案一:拆分处理+合并

  1. 分离出GROUP不为空的原始记录:
non_null_rows = df[df['GROUP'].notna()]
  1. 处理GROUP为空的行,与df_groups做笛卡尔积生成多行记录:
null_rows = df[df['GROUP'].isna()].drop(columns='GROUP').merge(df_groups, how='cross')
  1. 合并两部分数据并重置索引:
result = pd.concat([non_null_rows, null_rows], ignore_index=True)

执行后得到的结果与预期一致:

AREA   GROUP  VALUE
0   P1  GROUP1      0
1   P1  GROUP1      2
2   P1  GROUP2      2
3   P1  GROUP3      2

方案二:利用explode展开

  1. 将df中GROUP为None的位置替换为df_groups['GROUP']的列表:
df['GROUP'] = df['GROUP'].apply(lambda x: df_groups['GROUP'].tolist() if pd.isna(x) else x)
  1. 使用explode将列表类型的GROUP字段展开为多行:
result = df.explode('GROUP', ignore_index=True)

这种方法更简洁,同样能得到预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:05:12