Python 基于其他列创建新列,但不包括剥离

Python 基于其他列创建新列,但不包括剥离,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个带有id列的熊猫数据框,如下所示: id A2015 B2016 C2017 我想要两个新专栏,如下所示: id year name A2015 2015 A Q B2016 2016 B Q C2017 2017 C Q 因此,year列应采用id列的最后四个字符,name列应采用除最后四个字符以外的所

我有一个带有
id
列的熊猫数据框,如下所示:

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'

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

您可以使用string方法获取这些

通过参与
id
字符串获取
year

In [60]: df['year'] = df['id'].str[1:]
并且,通过获取
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

您可以使用string方法获取这些

通过参与
id
字符串获取
year

In [60]: df['year'] = df['id'].str[1:]
并且,通过获取
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

您可以使用string方法获取这些

通过参与
id
字符串获取
year

In [60]: df['year'] = df['id'].str[1:]
并且,通过获取
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
lambda函数通常更快

lambda函数通常更快

lambda函数通常更快


lambda函数通常更快

ah谢谢。我走的路是对的,但不是通过
df['id']访问。str
我是通过
str(df['id'])
访问的,这是错误的……啊,谢谢。我走的路是对的,但不是通过
df['id']访问。str
我是通过
str(df['id'])
访问的,这是错误的……啊,谢谢。我走的路是对的,但不是通过
df['id']访问。str
我是通过
str(df['id'])
访问的,这是错误的……啊,谢谢。我走的路是对的,但不是通过
df['id']访问。str
我是通过
str(df['id'])
访问的,这是错误的…不一定@sachin是考虑到加速而写的。不一定@sachin是考虑到加速而写的。不一定@sachin,是考虑到加速而写的。不一定是@sachin,是考虑到加速而写的。