首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >根据其他列值重命名列

根据其他列值重命名列
EN

Stack Overflow用户
提问于 2018-05-31 06:48:26
回答 2查看 220关注 0票数 2

我有一个包含以下列的数据帧:

代码语言:javascript
复制
Region | LA code | LA Name
-----------------------------------------
London |    201  | City of London
London |    202  | Camden
London |    203  | Greenwich
London |    204  | Hackney
London |    205  | Hammersmith and Fulham
London |    206  | Islington
London |    207  | Kensington and Chelsea
London |    208  | Lambeth
London |    209  | Lewisham
London |    210  | Southwark
London |    211  | Tower Hamlets
London |    212  | Wandsworth
London |    213  | Westminster
London |    301  | Barking and Dagenham
London |    302  | Barnet
London |    303  | Bexley
London |    304  | Brent
London |    305  | Bromley
London |    306  | Croydon
London |    307  | Ealing
London |    308  | Enfield
London |    309  | Haringey
London |    310  | Harrow
London |    311  | Havering
London |    312  | Hillingdon
London |    313  | Hounslow
London |    314  | Kingston upon Thames
London |    315  | Merton
London |    316  | Newham
London |    317  | Redbridge
London |    318  | Richmond upon Thames
London |    319  | Sutton
London |    320  | Waltham Forest

我的问题是,将伦敦重命名为伦敦内区( LA代码在201 - 213范围内)和伦敦外( LA代码在301 - 320范围内)的简单快捷的方法是什么?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-31 06:54:17

这两个问题都由pd.Series.between回答。

代码语言:javascript
复制
m = df['LA Code'].between(201, 213)
df.loc[m, 'Region'] = 'Inner ' + df.loc[m, 'Region']
# df.loc[m, 'Region'] = df.loc[m, 'Region'].radd('Inner ')

和,

代码语言:javascript
复制
m = df['LA Code'].between(301, 320)
df.loc[m, 'Region'] = 'Outer ' + df.loc[m, 'Region']
票数 1
EN

Stack Overflow用户

发布于 2018-05-31 07:05:09

使用np.select,您可以指定条件和值的列表:

代码语言:javascript
复制
df = pd.DataFrame([['London', 201, 'City of London'],
                   ['London', 302, 'Barnet']],
                  columns=['Region', 'LA Code', 'LA Name'])

conditions = [df['LA Code'].between(201, 213), df['LA Code'].between(301, 320)]

values = ['Inner ' + df['Region'], 'Outer ' + df['Region']]

df['Region'] = np.select(conditions, values, df['Region'])

print(df)

         Region  LA Code         LA Name
0  Inner London      201  City of London
1  Outer London      302          Barnet

请注意,np.select的最后一个参数是默认参数,在所提供的条件都不适用时使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50614323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档