簡體   English   中英

從熊貓數據框中的其他列創建新列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM