如何重塑 pandas DataFrame,将列名转换为值
How to reshape pandas DataFrame, transforming column names to values
我有这个矩阵:
columnA columnB ... columnX
index0 val0A val0B ... val0X
index1 val1A val1B ... val1X
... ... ... ... ...
indexN valNA valNB ... valNX
我想以这种方式重塑 pandas DataFrame:
values columns
index0A val0A columnA
index1A val1A columnA
... ... ...
index0B val0B columnB
index1B val1B columnB
...
indexNX valNX columnX
我怎样才能实现它,这个转换的通常名称是什么?
我想你想要 melt()
一个例子
df = pd.DataFrame({"A": [10,20,45,34,23], "B": [20, 30, 10, 40, 50]})
df
A B
0 10 20
1 20 30
2 45 10
3 34 40
4 23 50
pd.melt(df)
variable value
0 A 10
1 A 20
2 A 45
3 A 34
4 A 23
5 B 20
6 B 30
7 B 10
8 B 40
9 B 50
我有这个矩阵:
columnA columnB ... columnX
index0 val0A val0B ... val0X
index1 val1A val1B ... val1X
... ... ... ... ...
indexN valNA valNB ... valNX
我想以这种方式重塑 pandas DataFrame:
values columns
index0A val0A columnA
index1A val1A columnA
... ... ...
index0B val0B columnB
index1B val1B columnB
...
indexNX valNX columnX
我怎样才能实现它,这个转换的通常名称是什么?
我想你想要 melt()
一个例子
df = pd.DataFrame({"A": [10,20,45,34,23], "B": [20, 30, 10, 40, 50]})
df
A B
0 10 20
1 20 30
2 45 10
3 34 40
4 23 50
pd.melt(df)
variable value
0 A 10
1 A 20
2 A 45
3 A 34
4 A 23
5 B 20
6 B 30
7 B 10
8 B 40
9 B 50