我有以下数据帧: 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
提交
取消