python使用crosstab方法进行长宽表转换代码
时间: 2024-01-31 20:02:56 浏览: 64
在Python中,可以使用pandas库中的crosstab方法进行长宽表转换。以下是一个例子:
假设我们有一个包含学生姓名、科目和成绩的数据集,长成这样:
| Name | Subject | Score |
|-------|---------|-------|
| Alice | Math | 85 |
| Alice | Science | 92 |
| Bob | Math | 78 |
| Bob | Science | 88 |
| Alice | English | 90 |
| Bob | English | 85 |
现在我们想要将它转换为以学生姓名为行、科目为列、成绩为值的宽表格。可以使用以下代码实现:
```python
import pandas as pd
# 读取数据集
df = pd.read_csv('student_scores.csv')
# 使用crosstab进行转换
wide_df = pd.crosstab(index=df['Name'], columns=df['Subject'], values=df['Score'], aggfunc='first')
print(wide_df)
```
输出结果:
| Subject | English | Math | Science |
|---------|---------|------|---------|
| Alice | 90 | 85 | 92 |
| Bob | 85 | 78 | 88 |
其中,index参数指定了行,columns参数指定了列,values参数指定了填充值,aggfunc参数指定了如何聚合填充值(这里使用了'first',表示使用第一个遇到的填充值)。
阅读全文