Python 从dataframe中的其他列创建新列

Python 从dataframe中的其他列创建新列,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个数据帧 2019Q4 2020Q4 0 20 10 1 56 15 2 63 14 从这个我想要创建的数据帧 2019Q4 2020Q4 year2019 year2020 0 20 10 20 10 1 56 15 56 15 2 63 14 63 14 请帮助

我有一个数据帧

   2019Q4  2020Q4
0      20      10
1      56      15
2      63      14
从这个我想要创建的数据帧

   2019Q4  2020Q4  year2019  year2020
0      20      10        20        10
1      56      15        56        15
2      63      14        63        14
请帮助我如何在python中实现这一点

对前4个值使用rename with lambda函数,通过添加前缀,然后通过添加到原始值:

如果可能,同一年有多个列:

print (df)
   2019Q4  2020Q4  2020Q3
0      20      10       3
1      56      15       5
2      63      14      15


df1 = df.join(df.rename(columns=lambda x: x[:4]).add_prefix('year'))
print (df1)
   2019Q4  2020Q4  2020Q3  year2019  year2020  year2020
0      20      10       3        20        10         3
1      56      15       5        56        15         5
2      63      14      15        63        14        15
如果选择一列,则获取所有列,因为重复:

print (df1['year2020'])
   year2020  year2020
0        10         3
1        15         5
2        14        15
可能的解决方案是聚合的,例如通过总和:

对前4个值使用rename with lambda函数,通过添加前缀,然后通过添加到原始值:

如果可能,同一年有多个列:

print (df)
   2019Q4  2020Q4  2020Q3
0      20      10       3
1      56      15       5
2      63      14      15


df1 = df.join(df.rename(columns=lambda x: x[:4]).add_prefix('year'))
print (df1)
   2019Q4  2020Q4  2020Q3  year2019  year2020  year2020
0      20      10       3        20        10         3
1      56      15       5        56        15         5
2      63      14      15        63        14        15
如果选择一列,则获取所有列,因为重复:

print (df1['year2020'])
   year2020  year2020
0        10         3
1        15         5
2        14        15
可能的解决方案是聚合的,例如通过总和:


如果您是熊猫新手,还可以使用以下代码:

df1['year2019']=df1['2019Q4']
df1['year2020']=df1['2020Q4']

如果您是熊猫新手,还可以使用以下代码:

df1['year2019']=df1['2019Q4']
df1['year2020']=df1['2020Q4']
如果2020Q4改为2019Q3会发生什么?什么是产出?如果2020Q4变为2019Q3会发生什么?什么是输出?