我得到了一個以月份為索引、以年份為標題的資料框。像這樣的東西:
2021 2020 2019
jan 1 7 3
feb 2 4 5
mar 2 4 5
apr 2 4 6
may 2 4 5
jun 4 4 5
jul 2 4 5
aug 2 4 8
sep 7 4 5
oct 2 4 5
nov 2 4 5
dec 2 4 5
我怎樣才能把它變成一個單行的 df 列 2021-jan, 2021-feb, 2021-mar ... 2021-dec, 2020-jan ... 像這樣:
2021-jan 2021-feb 2021-mar
0 1 2 2
uj5u.com熱心網友回復:
嘗試使用stack和pivot_table:
output = df.stack().reset_index().pivot_table(columns=["level_1","level_0"], values=0)
#convert columns to datetime and sort
output.columns = pd.to_datetime(["-".join(col).strip() for col in output.columns.values],format="%Y-%b")
output = output.reindex(sorted(output.columns, key=lambda x: (-x.year, x.month)), axis=1)
#rename columns to strings if needed
output.columns = [col.strftime("%Y-%b") for col in output.columns]
>>> output
2021-Jan 2021-Feb 2021-Mar ... 2019-Oct 2019-Nov 2019-Dec
0 1 2 2 ... 5 5 5
[1 rows x 36 columns]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/360932.html
上一篇:使用isin(list)過濾資料框時,“ValueError:Columnsmustbethesamelengthaskey”
下一篇:替換部分熊貓行并創建一個新列
