如何重塑 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