📌  相关文章
📜  将列转换为行 pandas - Python (1)

📅  最后修改于: 2023-12-03 15:09:34.633000             🧑  作者: Mango

将列转换为行 Pandas - Python

在数据清洗和分析中,经常需要将列转换为行。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完成这个任务。