如何将dataframe两行两列的矩阵转换为一列四行
时间: 2023-06-02 16:01:55 浏览: 96
可以使用pandas的melt函数进行转换,具体步骤如下:
假设原始的dataframe为df,其中第一行为A、B,第二行为C、D,如下所示:
```
A B
0 1 2
1 3 4
```
1. 将矩阵转置,使得每列对应一行:
```
0 1
A 1 3
B 2 4
```
可以使用transpose函数实现:
```python
df = df.transpose()
```
2. 使用melt函数将两列转换为一列:
```python
df = df.reset_index().melt(id_vars=['index'], value_vars=[0, 1])
```
其中reset_index函数将原始的行索引转换为列,并且melt函数将列转换为值,id_vars参数指定保留的列,value_vars参数指定要转换的列。
转换后的结果如下:
```
index variable value
0 A 0 1
1 B 0 2
2 A 1 3
3 B 1 4
```
3. 将列名修改为原始的列名:
```python
df.columns = ['col', 'row', 'value']
```
转换后的结果如下:
```
col row value
0 A 0 1
1 B 0 2
2 A 1 3
3 B 1 4
```
最终得到了一列四行的dataframe。
阅读全文