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

基于前驱行值修改Pandas DataFrame字段内容的通用方法咨询

通用实现方案

核心思路是先提取所有真实省份名称,通过向前填充的方式把省份名称同步到下属所有分类行,再对分类行的Province字段做拼接,完全不依赖Private和Public的排序规则。

实现代码

# 标记哪些行是省份(非Private/Public的行即为省份行)
is_province = ~df['Province'].isin(['Private', 'Public'])
# 生成省份基准列,空值自动用前一个非空的省份名称填充
df['province_base'] = df['Province'].where(is_province).ffill()
# 对分类行的Province字段做拼接修改
df.loc[~is_province, 'Province'] = df['province_base'] + '-' + df['Province']
# 删除临时生成的基准列
df = df.drop('province_base', axis=1)

方案说明

  • where方法会把不符合is_province条件的行赋值为NaN,后续ffill()(向前填充)会自动把这些NaN用上一行的省份值填充,保证每个分类行都能拿到归属的省份名称
  • 不管Private和Public的顺序如何调换,只要同一个省份的所有分类行都位于该省份行的下方,就能得到正确结果,通用性更强
  • 不需要逐行循环,运行效率比原始的循环方案更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:27:02