基于其他列创建新列但剥离

时间:2015-05-20 06:42:56

标签: python pandas dataframe

我有一个带有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>

如何实现这一目标?

2 个答案:

答案 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函数通常更快