根据其他列创建新列,但剥离



我有一个带有 id列的pandas dataframe,看起来像这样:

id                
A2015        
B2016         
C2017         

我想要两个新列,如下:

id         year       name  
A2015      2015       A Q
B2016      2016       B Q
C2017      2017       C Q

因此,year列应采用id列的最后四个字符,name列应采用除最后四个字符并添加Q的所有字符。

如何实现?

您可以使用字符串方法获得这些。

通过参加id字符串

获取year
In [60]: df['year'] = df['id'].str[1:]

和,通过摄入id字符串的最后四个字符并添加' q'

获得name
In [61]: df['name'] = df['id'].str[:-4] + ' Q'
In [62]: df
Out[62]:
      id  year name
0  A2015  2015  A Q
1  B2016  2016  B Q
2  C2017  2017  C Q
    df['year'] = df['id'].apply(lambda v : v[1:])
    df['name'] = df['id'].apply(lambda v : v[0] + ' Q')

lambda功能通常更快

最新更新