基于其他列创建新列

2024-05-18 07:14:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有id列的pandas数据帧,如下所示:

id                
A2015        
B2016         
C2017         

我需要两个新列,如下所示:

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

因此year列应该采用id列的最后四个字符,name列应该采用除最后四个字符以外的所有字符并添加Q。你知道吗

如何做到这一点?你知道吗


Tags: 数据nameidpandas字符yearb2016c2017
2条回答
    df['year'] = df['id'].apply(lambda v : v[1:])
    df['name'] = df['id'].apply(lambda v : v[0] + ' Q')

lambda函数通常更快

您可以使用字符串方法获取这些。你知道吗

通过参与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

相关问题 更多 >