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会发生什么?什么是输出?