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

基于Pandas实现匹配特定字符串时向左列复制值至当前列

解决Pandas中匹配特定字符串时复制左侧列值的问题

嘿,这事儿好办!咱们直接用Pandas的条件定位赋值就能轻松实现你要的效果——当City列值为'not available'时,把同一行左边的Country列值替换过来。

先看你的示例数据:

import pandas as pd
df = pd.DataFrame({'Country': ['France','England','U.S.A','Spain'], 'City': ['Paris','London','not available','not available']})
print(df)

输出初始数据:

Country           City
0   France          Paris
1  England         London
2    U.S.A  not available
3    Spain  not available

核心解决方案

用df.loc精准定位需要修改的行和列,直接赋值即可:

# 定位City列等于'not available'的行,将对应行的Country值赋值给City
df.loc[df['City'] == 'not available', 'City'] = df['Country']

# 查看修改后的数据
print(df)

修改后的输出结果:

Country    City
0   France   Paris
1  England  London
2    U.S.A  U.S.A
3    Spain  Spain

通用拓展(如果不知道左侧列名,只看位置)

要是你需要更灵活的方式——比如不管列名是什么,只要当前列匹配特定值就取它左边一列的值,可以通过列的索引位置来实现:

# 获取目标列(这里是City)的索引位置
target_col_idx = df.columns.get_loc('City')
# 左侧列就是索引减1对应的列
left_col_name = df.columns[target_col_idx - 1]

# 执行替换逻辑
df.loc[df['City'] == 'not available', 'City'] = df[left_col_name]

这种方式即使后续列名调整,只要列的相对位置不变,代码依然能正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 15:48:11