我有以下數據幀: Well_ID BOPDDate 2020-01-01 101 12020-01-02 102 22020-01-03 102 32020-01-04 101 12020-01-05 103 22020-01-03 101 3我想將其重新格式化為: 101 102 1032020-01-01 1.0 NaN NaN2020-01-02 NaN 2.0 NaN2020-01-03 3.0 3.0 NaN2020-01-04 1.0 NaN NaN2020-01-05 NaN NaN 2.02020-01-06 NaN NaN NaN2020-01-07 NaN NaN NaN2020-01-08 NaN NaN NaN2020-01-09 NaN NaN NaN我可以使用 for 循環獲得:for well, date, bopd in zip(wellTest['Well_ID'].tolist(),wellTest.index.to_list(),wellTest['BOPD'].to_list()): wellTestBr.loc[date, well] = bopd真的認為應該有更好的方法。
2 回答

臨摹微笑
TA貢獻1982條經驗 獲得超2個贊
您正在尋找 :pivot
df.reset_index().pivot('Date', 'Well_ID', 'BOPD')
Well_ID 101 102 103
Date
2020-01-01 1.0 NaN NaN
2020-01-02 NaN 2.0 NaN
2020-01-03 3.0 3.0 NaN
2020-01-04 1.0 NaN NaN
2020-01-05 NaN NaN 2.0

慕的地6264312
TA貢獻1817條經驗 獲得超6個贊
您可以并且:set_indexunstack
df.set_index(['Well_ID'], append=True)['BOPD'].unstack()
輸出;
Well_ID 101 102 103
Date
2020-01-01 1.0 NaN NaN
2020-01-02 NaN 2.0 NaN
2020-01-03 3.0 3.0 NaN
2020-01-04 1.0 NaN NaN
2020-01-05 NaN NaN 2.0
添加回答
舉報
0/150
提交
取消