python pandas.pivot_table() 函数
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 dataframe dataframe.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:python
-
dataframe.shift() 函数是将 dataframe 的索引按指定的周期数进行移位。
pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:python
-
pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。
pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:python
-
本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。
pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:python
-
本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。
在 python 中将 pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:python
-
了解如何在 python 中将 pandas 系列日期时间转换为字符串
在 python pandas 中使用 str.split 将字符串拆分为两个列表列
发布时间:2024/04/24 浏览次数:1124 分类:python
-
本教程介绍如何使用 pandas str.split() 函数将字符串拆分为两个列表列。