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

Pandas中筛选name含Al的行并替换sport列large为L的实现方法

完整实现代码

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'name': ['Bob', 'Jane', 'Alice'], 
    'sport': ['tennis small', 'football medium', 'basketball large']
})

# 核心操作:筛选name含Al的行,替换对应sport列的large为L
df.loc[df['name'].str.contains('Al'), 'sport'] = df.loc[df['name'].str.contains('Al'), 'sport'].str.replace('large', 'L')

# 打印验证结果
print(df)

输出结果

name             sport
0    Bob      tennis small
1   Jane   football medium
2  Alice      basketball L

逻辑拆解

  • df['name'].str.contains('Al')生成布尔序列,匹配所有name列包含Al子串的行
  • 通过loc定位到匹配行的sport列,调用str.replace完成子串替换后赋值回原列,仅修改匹配行的对应数值

补充说明

如果需要保留原始DataFrame不被修改,可先复制副本再操作:

df_new = df.copy()
df_new.loc[df_new['name'].str.contains('Al'), 'sport'] = df_new.loc[df_new['name'].str.contains('Al'), 'sport'].str.replace('large', 'L')

如果需要不区分大小写匹配al/AL等写法,可在contains方法中添加case=False参数:

df.loc[df['name'].str.contains('Al', case=False), 'sport']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:54:00