python dataframe 某一行数据转列
时间: 2023-09-02 12:15:43 浏览: 291
pandas.DataFrame的pivot()和unstack()实现行转列
可以使用 Pandas 库中的 melt() 函数将某一行数据转为列。
假设有如下的 DataFrame:
```
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'gender': ['Female', 'Male', 'Male'],
'score_math': [80, 90, 85],
'score_english': [75, 85, 90]
}
df = pd.DataFrame(data)
```
其中,第一行是学生的姓名、年龄和性别,而第二行是学生的数学成绩和英语成绩。现在想要将第一行的信息转为列,可以使用以下代码:
```
df = df.melt(id_vars=['name', 'age', 'gender'], var_name='subject', value_name='score')
```
其中,id_vars 参数是需要保留的列,var_name 参数是新生成的列的名称,value_name 参数是新生成的列中的值的名称。运行上述代码后,得到的 DataFrame 如下:
```
name age gender subject score
0 Alice 25 Female score_math 80
1 Bob 30 Male score_math 90
2 Charlie 35 Male score_math 85
3 Alice 25 Female score_english 75
4 Bob 30 Male score_english 85
5 Charlie 35 Male score_english 90
```
可以看到,原先的第二行数据被转为了两列,分别是 subject 和 score。
阅读全文