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

如何按LA code范围将DataFrame的Region列London替换为内/外伦敦?

快速修改DataFrame中Region列值的方法

这里有几个快速又简便的方法来实现你的需求,都是Pandas里常用的操作,挑你顺手的用就行:

方法一:用loc条件赋值(最直观)

这种方法逻辑清晰,新手也能一眼看明白,分两步分别处理两个区间:

# 更新Inner London的行
df.loc[(df['LA code'] >= 201) & (df['LA code'] <= 213), 'Region'] = 'Inner London'
# 更新Outer London的行
df.loc[(df['LA code'] >= 301) & (df['LA code'] <= 320), 'Region'] = 'Outer London'

loc可以精准筛选出符合条件的行,直接给指定列赋值,操作简单不易出错。

方法二:用numpy.where(一行搞定)

如果想要更紧凑的代码,嵌套numpy.where可以把逻辑写在一行里:

import numpy as np

df['Region'] = np.where(
    (df['LA code'].between(201, 213)),  # 用between简化区间判断
    'Inner London',
    np.where(
        (df['LA code'].between(301, 320)),
        'Outer London',
        df['Region']  # 保留原Region的值(这里原先是London)
    )
)

这里用between()替代了>=和<=的组合,代码更简洁,适合条件分支不多的场景。

方法三:用pd.cut(适合多区间分类)

如果以后还有更多区间需要分类,pd.cut是更高效的选择,它专门用于数值的区间划分:

import pandas as pd

# 定义区间边界和对应的标签
bins = [0, 213, 300, 320, float('inf')]
labels = ['Inner London', None, 'Outer London', df['Region'].iloc[0]]

# 划分区间并替换值,空值用原Region填充
df['Region'] = pd.cut(
    df['LA code'],
    bins=bins,
    labels=labels,
    include_lowest=True
).fillna(df['Region'])

这个方法的优势是扩展性强,后续新增区间只需要修改bins和labels就行,不用重复写条件判断。

内容的提问来源于stack exchange,提问作者Pi-thon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:23:40