經過四倍 for 回圈,很長而且很混亂,我得到了這樣的東西:
ETH-BNB ETH-BNB ETH-DOGE ETH-DOGE LTC-BTC LTC-DOGE LTC-XMR LTC-XMR
868.706 2724.619 1207.112 3615.28 278.007 161.565 84.9219 126.234
我想要的是這樣的:
ETH-BNB ETH-DOGE LTC-BTC LTC-DOGE LTC-XMR
868.706 1207.112 278.007 161.565 84.9219
2724.619 3615.28 NAN NAN 126.234
有沒有辦法可以做到這一點?
先感謝您
uj5u.com熱心網友回復:
“四重回圈”聽起來您可能會重新考慮如何構建資料框,但無論哪種方式,這都有效:
df_merged = df.groupby(level=0, axis=1).apply(lambda x:x.T.reset_index(drop=True)).droplevel(1, axis=1)
df.groupby(level=0, axis=0)將具有相同列名的段分組,例如,
ETH-BNB ETH-BNB
0 868.706 2724.619
lambda x:x.T.reset_index(drop=True)然后將每個組堆疊成這樣:
0
0 868.706
1 2724.619
結果是一個看起來幾乎正確的資料框:
ETH-BNB ETH-DOGE LTC-BTC LTC-DOGE LTC-XMR
0 0 0 0 0
0 868.706 1207.112 278.007 161.565 84.9219
1 2724.619 3615.28 NaN NaN 126.234
最后,我們只需要去掉列中的MultiIndex,這是通過最后一步實作的.droplevel(1, axis=1),得到:
ETH-BNB ETH-DOGE LTC-BTC LTC-DOGE LTC-XMR
0 868.706 1207.112 278.007 161.565 84.9219
1 2724.619 3615.28 NaN NaN 126.234
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/431720.html
下一篇:水平折疊某些列
