2 回答

TA貢獻1891條經驗 獲得超3個贊
讓我們嘗試一下melt
s = df.melt(['Date','Id']).dropna()
s['name'] = s.pop('variable') +'_'+ s.pop('Id').astype(str)
s
Date value name
0 2020-1-1 10.0 V1_1
1 2020-1-1 20.0 V1_2
2 2020-1-1 11.0 V1_3
3 2020-1-1 100.0 V2_1
4 2020-1-1 120.0 V2_2
5 2020-1-1 101.0 V2_3
7 2020-1-1 23.0 V3_2

TA貢獻1772條經驗 獲得超8個贊
你可以這樣做df.melt
df1 = df.melt(['Date','Id']).dropna()
df1 = df1.assign(Name=df1.Id.astype(str) + '_' + df1.variable)
df1[['Date','Name','value']]
輸出
? ? ? ?Date? Name? value
0? 2020-1-1? 1_V1? ?10.0
1? 2020-1-1? 2_V1? ?20.0
2? 2020-1-1? 3_V1? ?11.0
3? 2020-1-1? 1_V2? 100.0
4? 2020-1-1? 2_V2? 120.0
5? 2020-1-1? 3_V2? 101.0
7? 2020-1-1? 2_V3? ?23.0
添加回答
舉報