reshape怎么应用
时间: 2023-10-23 14:28:41 浏览: 58
`reshape`是指将数据框从长格式(Long Format)转换为宽格式(Wide Format)或者从宽格式转换为长格式。一般来说,当我们需要对数据进行可视化或者进一步的分析时,需要对数据进行重塑。
在 Pandas 中,可以使用`melt()`方法将宽格式数据框转换为长格式数据框,使用`pivot()`方法将长格式数据框转换为宽格式数据框。
例如,假设我们有一个宽格式数据框`wide_df`,其中包含了每个学生在每个科目上的成绩:
```
name math english science
0 John 90 85 92
1 Mary 80 92 88
2 Peter 85 87 90
```
我们可以使用以下代码将其转换为长格式数据框:
```
long_df = pd.melt(wide_df, id_vars=['name'], value_vars=['math', 'english', 'science'], var_name='subject', value_name='score')
```
这样会返回一个新的长格式数据框`long_df`,其中每一行表示一个学生在一个科目上的成绩。
如果想要将长格式数据框转换为宽格式数据框,可以使用`pivot()`方法。例如,假设我们有一个长格式数据框`long_df`,其中包含了每个学生在每个科目上的成绩:
```
name subject score
0 John math 90
1 John english 85
2 John science 92
3 Mary math 80
4 Mary english 92
5 Mary science 88
6 Peter math 85
7 Peter english 87
8 Peter science 90
```
我们可以使用以下代码将其转换为宽格式数据框:
```
wide_df = long_df.pivot(index='name', columns='subject', values='score')
```
这样会返回一个新的宽格式数据框`wide_df`,其中每一行表示一个学生,每一列表示一个科目,对应的值为该学生在该科目上的成绩。需要注意的是,`pivot()`方法要求每个组合(即每个学生在每个科目上的成绩)只出现一次,如果有重复数据则需要先进行去重操作。
阅读全文