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

如何在同一pandas DataFrame中匹配父站点并覆盖子站点的info属性值

实现方案

直接通过构造站点映射+匹配的方式实现,代码简洁高效,天然支持多父站点场景:

import pandas as pd

# 初始数据构造
data = [['london_1', 10,'london'], ['london_2', 15,'london'], ['london_3', 14,'london'],['london',49,'']]
df = pd.DataFrame(data, columns = ['station', 'info','parent_station'])

# 核心逻辑
# 构建所有站点名和对应info的映射
station_info_map = df.set_index('station')['info'].to_dict()
# 子站点用父站点的info,无父站点的保留原有info
df['info'] = df['parent_station'].map(station_info_map).fillna(df['info']).astype(int)

print(df)

输出结果和要求完全一致:

station  info parent_station
0  london_1    49         london
1  london_2    49         london
2  london_3    49         london
3    london    49               

逻辑说明

  • 先把所有站点的名称和对应的info值存为字典,父站点、子站点都会被收录
  • 用map方法将子站点的父站点名称匹配到对应的info值,没有父站点的行匹配结果为NaN
  • 用fillna将无父站点的行填充为原来的info值,最后转整型避免浮点数转换问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:06:03