我有一个带有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
。< / p>
如何实现这一目标?
答案 0 :(得分:2)
你可以使用字符串方法获得这些。
通过参与year
字符串
id
In [60]: df['year'] = df['id'].str[1:]
并且,通过获取name
字符串的最后四个字符并添加id
来获取' q'
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
答案 1 :(得分:1)
df['year'] = df['id'].apply(lambda v : v[1:])
df['name'] = df['id'].apply(lambda v : v[0] + ' Q')
lambda函数通常更快