📅  最后修改于: 2023-12-03 15:09:34.633000             🧑  作者: Mango
在数据清洗和分析中,经常需要将列转换为行。Pandas是一个强大的工具,可以快速地完成这个任务。这篇文章将介绍如何使用Pandas将列转换为行。
Pandas提供了.stack()
方法来实现列到行的转换。该方法将DataFrame的列转换为层次结构的行索引。其语法如下所示:
df.stack()
下面是一个示例DataFrame:
import pandas as pd
data = {'Name': ['John', 'Mike', 'Sarah'],
'Maths': [85, 92, 78],
'Science': [90, 87, 89]}
df = pd.DataFrame(data)
这个DataFrame包含三个人的姓名、数学成绩和科学成绩。我们可以使用.stack()
方法将数学成绩和科学成绩列转换为行:
df = df.set_index('Name')
result = df.stack()
转换结果如下所示:
Name Math 85
Science 90
Math 92
Science 87
Math 78
Science 89
dtype: int64
我们可以看到,转换后的结果包括了三个层次结构的行,分别是每个人、科目和成绩。
转换后的数据是一个Series,其索引由多个层次结构组成。我们可以使用.loc[]
方法来访问这些层次结构中的元素:
result.loc['John', 'Math']
这会返回John的数学成绩85。我们也可以使用.unstack()
方法将层次结构的行索引转换回列。如下所示:
result = result.unstack()
转换结果如下所示:
Math Science
Name
John 85 90
Mike 92 87
Sarah 78 89
我们可以看到,转换后的结果是一个和原始DataFrame相似的DataFrame,只不过现在行索引是人名,列索引是科目名称。
在数据清洗和分析中,Pandas是一个非常有用的工具。使用.stack()
方法,我们可以轻松地将列转换为行,也可以使用.unstack()
方法将行转换回列。这篇文章介绍了如何使用Pandas完成这个任务。