python pandas.pivot-ag捕鱼王app官网

python pandas.pivot_table() 函数

作者:迹忆客 最近更新:2024/04/24 浏览次数:

python pandaspandas.pivot_table() 函数避免了 dataframe 的数据重复。它对数据进行汇总,并对数据应用不同的聚合函数。


pandas.pivot_table() 的语法

pandas.pivot_table(
    data,
    values=none,
    index=none,
    columns=none,
    aggfunc="mean",
    fill_value=none,
    margins=false,
    dropna=true,
    margins_name="all",
    observed=false,
)

参数

这个函数有几个参数。所有参数的默认值如上所述。

data 这是 dataframe,我们要从中删除重复的数据。
values 它代表要汇总的列
index 它是一个列、grouper、数组或列表。它代表我们想要作为索引的数据列,即行。
columns 它是一个列、grouper、数组或列表。它代表了我们希望在输出数据透视表中作为列的数据列。
aggfunc 它是一个函数、函数列表或字典。它代表将应用于数据的聚合函数。如果传递的是聚合函数的列表,那么在结果表中,每个聚合函数将有一列,列名在顶部。
fill_value 它是一个标量。它表示将取代输出表中缺失值的数值。
margins 这是一个布尔值。它代表了在取了各自行和列的和之后生成的行和列。
dropna 它是一个布尔值。它从输出表中删除值为 nan 的列。
margins_name 它是一个 “字符串”。它表示如果 margins 值为 true 时生成的行和列的名称。
observed 它是一个布尔值。如果任何分组是分类的,那么这个参数就适用。如果为 true,则显示分类分组的观察值。如果是 false,则显示分类分组的所有值。

返回值

它返回汇总后的 dataframe


示例代码:pandas.pivot_table()

让我们通过实现这个函数来深入了解它。

import pandas as pd
dataframe = pd.dataframe({
                            "name": 
                                ["olivia", 
                                "olivia", 
                                "olivia", 
                                "olivia", 
                                "meghan", 
                                "meghan", 
                                "meghan", 
                                "meghan"],
                            "date": 
                                ["03-06-2019", 
                                "04-06-2019", 
                                "03-06-2019", 
                                "04-06-2019", 
                                "03-06-2019", 
                                "04-06-2019", 
                                "03-06-2019", 
                                "04-06-2019"],
                            "science marks": 
                                [10, 
                                2, 
                                4, 
                                6, 
                                8, 
                                9, 
                                1, 
                                10]
                        })
print(dataframe)

示例 dataframe 的是:

     name        date  science marks
0  olivia  03-06-2019             10
1  olivia  04-06-2019              2
2  olivia  03-06-2019              4
3  olivia  04-06-2019              6
4  meghan  03-06-2019              8
5  meghan  04-06-2019              9
6  meghan  03-06-2019              1
7  meghan  04-06-2019             10

请注意,上述数据在一列中多次包含相同的值。这个 pivot_table 函数将汇总这些数据。

import pandas as pd
dataframe = pd.dataframe(
    {
        "name": [
            "olivia",
            "olivia",
            "olivia",
            "olivia",
            "meghan",
            "meghan",
            "meghan",
            "meghan",
        ],
        "date": [
            "03-06-2019",
            "04-06-2019",
            "03-06-2019",
            "04-06-2019",
            "03-06-2019",
            "04-06-2019",
            "03-06-2019",
            "04-06-2019",
        ],
        "science marks": [10, 2, 4, 6, 8, 9, 1, 10],
    }
)
pivottable = pd.pivot_table(dataframe, index="name", columns="date")
print(pivottable)

输出:

              science marks           
date      03-06-2019 04-06-2019
name                           
meghan           4.5        9.5
olivia           7.0        4.0

这里,我们选择了 name 列作为索引,date 作为列。函数已经根据默认参数生成了结果。默认的聚合函数 mean 计算了数值的平均值。


示例代码:pandas.pivot_table() 指定多个聚合函数

import pandas as pd
dataframe = pd.dataframe(
    {
        "name": [
            "olivia",
            "olivia",
            "olivia",
            "olivia",
            "meghan",
            "meghan",
            "meghan",
            "meghan",
        ],
        "date": [
            "03-06-2019",
            "04-06-2019",
            "03-06-2019",
            "04-06-2019",
            "03-06-2019",
            "04-06-2019",
            "03-06-2019",
            "04-06-2019",
        ],
        "science marks": [10, 2, 4, 6, 8, 9, 1, 10],
    }
)
pivottable = pd.pivot_table(
    dataframe, index="name", columns="date", aggfunc=["sum", "count"]
)
print(pivottable)

输出:

                   sum                    count           
              science marks            science marks           
date      03-06-2019 04-06-2019    03-06-2019 04-06-2019
name                                                    
meghan             9         19             2          2
olivia            14          8             2          2

我们使用了两个汇总函数。这些函数的列是单独生成的。


示例代码:pandas.pivot_table() 使用 margins 参数

import pandas as pd
dataframe = pd.dataframe(
    {
        "name": [
            "olivia",
            "olivia",
            "olivia",
            "olivia",
            "meghan",
            "meghan",
            "meghan",
            "meghan",
        ],
        "date": [
            "03-06-2019",
            "04-06-2019",
            "03-06-2019",
            "04-06-2019",
            "03-06-2019",
            "04-06-2019",
            "03-06-2019",
            "04-06-2019",
        ],
        "science marks": [10, 2, 4, 6, 8, 9, 1, 10],
    }
)
pivottable = pd.pivot_table(
    dataframe, index="name", columns="date", aggfunc=["sum", "count"], margins=true
)
print(pivottable)

输出:

                   sum                        count               
              science marks                science marks               
date      03-06-2019 04-06-2019 all    03-06-2019 04-06-2019 all
name                                                            
meghan             9         19  28             2          2   4
olivia            14          8  22             2          2   4
all               23         27  50             4          4   8

margins 参数生成了一个名为 all 的新行和一个名为 all 的新列,分别显示行和列的和。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:python

pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。

pandas 追加数据到 csv 中

发布时间:2024/04/24 浏览次数:352 分类:python

本教程演示了如何在追加模式下使用 to_csv()向现有的 csv 文件添加数据。

pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:python

本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。

pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:python

本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图