我有一个带有 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功能通常更快