我有一個資料框
df = pd.DataFrame(dict(x=[1, 2, 3], y=[4, 5, 6]))
x y
0 1 4
1 2 5
2 3 6
我想“逐行”融化它,即以這種方式:
var value
0 x 1
1 y 4
2 x 2
3 y 5
4 x 3
5 y 6
但如果我這樣做,我會得到df.melt()以下內容:
df.melt()
var value
0 x 1
1 x 2
2 x 3
3 y 4
4 y 5
5 y 6
我有一個解決方案.reshape,但它不是很優雅:
pd.DataFrame(
dict(
var=list(df.columns) * df.shape[0],
values=df.values.reshape(-1),
)
)
還有更多“原生熊貓”的方法嗎?
這個問題與那個問題相似,但它不是重復的:具體來說,基于排序的答案不適用于我的問題。
uj5u.com熱心網友回復:
然后你可以檢查stack
df.stack().reset_index(level=1)
或者你可以修復你的代碼
df.T.reset_index().melt('index').drop('variable',axis=1)
Out[164]:
index value
0 x 1
1 y 4
2 x 2
3 y 5
4 x 3
5 y 6
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/429581.html
下一篇:基于列折疊DataFrame
