pandas如何列转行
时间: 2024-02-17 21:59:09 浏览: 92
在pandas中,可以使用`melt()`函数将列转换为行。`melt()`函数的基本语法如下:
```python
pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)
```
参数说明:
- `frame`:要转换的数据框。
- `id_vars`:要保留的列名,不进行转换的列。
- `value_vars`:要进行转换的列名,如果不指定,则默认使用所有列。
- `var_name`:转换后的列名,默认为`variable`。
- `value_name`:转换后的值列名,默认为`value`。
- `col_level`:如果列是多级索引,则使用此参数指定要转换的级别。
下面是一个示例,演示如何使用`melt()`函数将列转换为行:
```python
import pandas as pd
# 创建示例数据框
data = {'Name': ['John', 'Mike', 'Sarah'],
'Maths': [90, 80, 95],
'Science': [85, 88, 92],
'English': [92, 78, 88]}
df = pd.DataFrame(data)
# 使用melt()函数将列转换为行
df_melted = pd.melt(df, id_vars=['Name'], value_vars=['Maths', 'Science', 'English'], var_name='Subject', value_name='Score')
print(df_melted)
```
输出结果如下:
```
Name Subject Score
0 John Maths 90
1 Mike Maths 80
2 Sarah Maths 95
3 John Science 85
4 Mike Science 88
5 Sarah Science 92
6 John English 92
7 Mike English 78
8 Sarah English 88
```
在上面的示例中,我们将`Maths`、`Science`和`English`这三列转换为行,并将转换后的列名命名为`Subject`,值列名命名为`Score`。
阅读全文