[英]Creating new column from other columns in 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
請幫助我如何在 python 中實現這一目標
對前 4 個值使用帶有 lambda 函數的rename
,通過DataFrame.add_prefix
添加前綴,然后通過DataFrame.add_prefix
添加到原始DataFrame.join
:
df = df.join(df.rename(columns=lambda x: x[:4]).add_prefix('year'))
print (df)
2019Q4 2020Q4 year2019 year2020
0 20 10 20 10
1 56 15 56 15
2 63 14 63 14
如果可能,同一年份的多列:
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
可能的解決方案是聚合,例如通過sum
:
df1 = df.join(df.groupby(lambda x: x[:4], axis=1).sum().add_prefix('year'))
print (df1)
2019Q4 2020Q4 2020Q3 year2019 year2020
0 20 10 3 20 13
1 56 15 5 56 20
2 63 14 15 63 29
如果您不熟悉熊貓,則還可以使用以下代碼:
df1['year2019']=df1['2019Q4']
df1['year2020']=df1['2020Q4']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.