pandas 行转列
时间: 2024-01-20 22:17:05 浏览: 103
pandas.DataFrame的pivot()和unstack()实现行转列
在pandas中,可以使用melt函数将行转换为列。melt函数的主要参数包括frame、id_vars、value_vars、var_name、value_name、ignore_index和col_level。
1. frame:要转换的数据框。
2. id_vars:要保留的列,不进行转换。
3. value_vars:要进行转换的列。
4. var_name:转换后的列名。
5. value_name:转换后的值名。
6. ignore_index:是否重置索引。
7. col_level:如果列是多级索引,则指定要转换的级别。
下面是一个示例,演示如何使用melt函数将行转换为列:
```python
import pandas as pd
# 创建一个示例数据框
data = {'Name': ['John', 'Mike', 'Sarah'],
'Math': [90, 85, 95],
'English': [80, 75, 85],
'Science': [95, 90, 92]}
df = pd.DataFrame(data)
# 使用melt函数将行转换为列
df_melted = pd.melt(df, id_vars=['Name'], value_vars=['Math', 'English', 'Science'], var_name='Subject', value_name='Score')
# 打印转换后的数据框
print(df_melted)
```
输出结果如下:
```
Name Subject Score
0 John Math 90
1 Mike Math 85
2 Sarah Math 95
3 John English 80
4 Mike English 75
5 Sarah English 85
6 John Science 95
7 Mike Science 90
8 Sarah Science 92
```
这个示例中,我们创建了一个包含姓名、数学、英语和科学成绩的数据框。然后,使用melt函数将数学、英语和科学成绩这三列转换为Subject和Score两列,保留了姓名这一列。最后,打印转换后的数据框。
阅读全文