pandas.DataFrame的pivot()和unstack()实现行转列

yizhihongxing

当我们在pandas中处理表格数据时,经常需要进行行列互换的操作,以更方便地对数据进行分析和处理。在这种情况下,可以使用pivot方法和unstack方法对数据进行行列转换。

1. pivot方法

pivot方法可以将某一列作为索引,将另一列作为列名,并将第三列的值填充到相应的单元格中。下面是使用pivot方法进行行列转换的示例:

import pandas as pd
data = [['John', 'Math', 85], ['Tom', 'Math', 75], ['Kate', 'Math', 90], ['John', 'English', 70], ['Tom', 'English', 80], ['Kate', 'English', 95]]
df = pd.DataFrame(data, columns=['Name', 'Subject', 'Score'])
print('原始数据:')
print(df)
print('*' * 50)
table = pd.pivot(data=df, index='Name', columns='Subject', values='Score')
print('转换后的数据:')
print(table)

执行结果如下:

原始数据:
   Name  Subject  Score
0  John     Math     85
1   Tom     Math     75
2  Kate     Math     90
3  John  English     70
4   Tom  English     80
5  Kate  English     95
**************************************************
转换后的数据:
Subject  English  Math
Name
John           70    85
Kate           95    90
Tom            80    75

在上面的示例中,我们首先创建了一个包含学生姓名、科目和成绩的数据表,然后使用pivot方法将原始数据中的姓名列作为索引,科目列作为列名,成绩列作为填充到相应单元格中的值,最终得到了一份以学生为行、科目为列、成绩为值的新表格。

需要注意的是,在pivot方法中,index参数指定了要作为新表格的行索引的列,columns参数指定了要作为新表格的列索引的列,而values参数则指定了要填充到新表格中的值的列。

2. unstack方法

unstack方法可以将表格中一个层次的行或列索引转换为列或行。下面是使用unstack方法进行行列转换的示例:

import pandas as pd

df = pd.read_csv('data.csv', index_col=[0,1])

print('原始数据:')
print(df)
print('*' * 50)

table = df.unstack(level=-1)
print('转换后的数据:')
print(table)

执行结果如下:

原始数据:
                   Value1    Value2
TimeStamp Person
2021-01-01 John        10        20
           Kate        15        25
2021-01-02 John        12        22
           Kate        18        28
**************************************************
转换后的数据:
         Value1       Value2
Person     John Kate  John Kate
TimeStamp
2021-01-01    10   15    20   25
2021-01-02    12   18    22   28

在上面的示例中,我们首先读入包含时间戳、人名和两个数值的数据表,然后使用set_index方法将两个列设为行索引,最后使用unstack方法将行索引中的第二层层次结构转换为列索引,最终得到了一份以时间戳为行、人名为列、数值为值的新表格。

需要注意的是,在unstack方法中,level参数指定要转换的索引层数,默认为-1。如果当前索引有多个层次,则需要指定要转换的层次。转换后,原来的层次结构就被转换为了新表格中的列索引或行索引。

通过pivot方法和unstack方法,我们可以非常方便地对表格数据进行行列转换。在实际的数据处理工作中,这两个方法经常被用来分析和处理数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas.DataFrame的pivot()和unstack()实现行转列 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 如何使用Pandas打印从给定日期开始的n天的日期?

    使用Pandas可以方便地打印从给定日期开始的n天的日期,具体步骤如下: 导入Pandas库: import pandas as pd 定义日期范围: start_date = ‘2021-01-01’ # 起始日期 num_days = 10 # 要打印的天数 date_range = pd.date_range(start_date, periods=n…

    python-answer 2023年3月27日
    00
  • 获取Pandas DataFrame的列的数据类型

    获取Pandas DataFrame的列的数据类型可以通过以下步骤完成: Step 1: 导入 Pandas 在开始之前,首先需要导入 Pandas 库和数据集。如果您还未安装 Pandas 库,请使用以下代码安装: !pip install pandas Step 2: 创建 DataFrame 使用 Pandas 数据库中的 read_csv() 函数导…

    python-answer 2023年3月27日
    00
  • Java中使用opencsv读写csv文件示例

    当我们需要读写csv文件时,可以选择使用opencsv库来简化操作。下面是使用opencsv读写csv文件的完整攻略。 步骤一:引入依赖 首先需要在Maven或Gradle中引入opencsv库的依赖。 Maven依赖: <dependency> <groupId>com.opencsv</groupId> <art…

    python 2023年6月13日
    00
  • Python中的pandas.isna()函数

    当我们在处理数据的时候,经常会遇到一些缺失值(NaN,None),这些缺失值会导致很多问题和错误,比如计算结果不准确,无法进行可视化,等等。而pandas库中的isna()函数就可以非常方便地判断一个数据是否为缺失值。 函数用法 pandas.isna(obj) 该函数的作用是判断数据是否为缺失值。 参数说明 obj:要判断的数据。 返回值 如果数据是缺失值…

    python-answer 2023年3月27日
    00
  • 对pandas的算术运算和数据对齐实例详解

    当我们在处理数据时,经常需要进行算术运算。Pandas提供了一些算术运算符,如加、减、乘等,并且还具有数据对齐的功能。在这篇文章中,我们将通过实例来详细讲解pandas的算术运算和数据对齐。 算术运算 Pandas支持所有基本的算术运算符,如加、减、乘、除、求余等,并且这些运算符可以与常量、Series和DataFrame相结合。 Series之间的算术运算…

    python 2023年6月13日
    00
  • Pandas 删除数据

    Pandas 删除数据攻略 在数据处理过程中,我们经常需要删除不需要的数据,比如删除某些行/列,特定条件下的数据等。Pandas 提供了各种方法来实现这些功能,接下来我们将详细讲解 Pandas 删除数据的攻略,包括以下部分: Pandas 删除行/列数据:drop() 方法 Pandas 删除满足特定条件的数据:query() 方法 Pandas 删除重复…

    python-answer 2023年3月27日
    00
  • pandas创建DataFrame的7种方法小结

    下面是关于“pandas创建DataFrame的7种方法小结”的详细攻略。 概述 DataFrame是Pandas中最重要的数据结构之一,它将数据组织成列和行的形式,类似于Excel表格。本文将介绍Pandas中不同的方法来创建DataFrame的七种方法。 Pandas创建DataFrame的7种方法小结 以下是Pandas中创建DataFrame的7种方…

    python 2023年5月14日
    00
  • matplotlib.pyplot绘图显示控制方法

    matplotlib.pyplot是Python中最著名的绘图库之一,它提供了许多功能用于数据可视化和分析。在绘制图表时,matplotlib.pyplot库可以使用一些方法来控制图表的显示。 下面是关于matplotlib.pyplot绘图显示控制方法的完整攻略。 1. 关闭图表窗口 在使用Pyplot库绘制图表时,有时需要关闭图表窗口。可以使用plt.c…

    python 2023年6月13日
    00
合作推广
合作推广
分享本页
返回顶部