pandas.pivot_table # 熊猫。数据透视表(数据,值=无,索引=无,列=无, aggfunc = 'mean', fill_value =无,边距= False, dropna = True, margins_name = 'All',观察= _NoDefault.no_default,排序= True)[来源]# 创建电子表格样式的数据透视表作为 DataFrame。 数据透视表中的级别将存储在结果 DataFrame 的索引和列上的 MultiIndex 对象(分层索引)中。 参数: 数据数据框 值列表式或标量,可选要聚合的一列或多列。 索引列、Grouper、数组或上一个的列表数据透视表索引上分组依据的键。如果传递一个列表,它可以包含任何其他类型(列表除外)。如果传递数组,则它的长度必须与数据相同,并且将以与列值相同的方式使用。 columns列、Grouper、数组或前面的列表数据透视表列上分组依据的键。如果传递一个列表,它可以包含任何其他类型(列表除外)。如果传递数组,则它的长度必须与数据相同,并且将以与列值相同的方式使用。 aggfunc函数,函数列表,字典,默认“mean”如果传递函数列表,则生成的数据透视表将具有分层列,其顶层是函数名称(从函数对象本身推断)。如果传递字典,则键是要聚合的列,值是函数或函数列表。如果margin=True, aggfunc 将用于计算部分聚合。 fill_value标量,默认无用于替换缺失值的值(在聚合后生成的数据透视表中)。 margins bool, 默认 False如果margins=True,All则将添加特殊的列和行,并在行和列上的类别中添加部分组聚合。 dropna bool,默认 True请勿包含条目全部为 NaN 的列。如果为 True,则在计算边距之前将忽略任何列中具有 NaN 值的行。 margins_name str,默认“全部”当边距为 True 时将包含总计的行/列的名称。 观察到的布尔值,默认 False这仅适用于任何石斑鱼是分类的。如果为 True:仅显示分类石斑鱼的观察值。如果为 False:显示分类石斑鱼的所有值。 自 version 2.2.0 起已弃用:默认值False已弃用,并将 True在 pandas 的未来版本中更改为。 排序bool,默认 True指定是否应对结果进行排序。 1.3.0 版本中的新增功能。 返回: 数据框Excel 样式的数据透视表。 也可以看看 DataFrame.pivot无需聚合即可处理非数字数据的透视。 DataFrame.melt将 DataFrame 从宽格式逆透视为长格式,可以选择保留标识符集。 wide_to_long宽面板到长格式。灵活性较差,但比熔化更用户友好。 笔记 请参阅用户指南以获取更多示例。 例子 >>> df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo", ... "bar", "bar", "bar", "bar"], ... "B": ["one", "one", "one", "two", "two", ... "one", "one", "two", "two"], ... "C": ["small", "large", "large", "small", ... "small", "large", "small", "small", ... "large"], ... "D": [1, 2, 2, 3, 3, 4, 5, 6, 7], ... "E": [2, 4, 5, 5, 6, 6, 8, 9, 9]}) >>> df A B C D E 0 foo one small 1 2 1 foo one large 2 4 2 foo one large 2 5 3 foo two small 3 5 4 foo two small 3 6 5 bar one large 4 6 6 bar one small 5 8 7 bar two small 6 9 8 bar two large 7 9 第一个示例通过求和来聚合值。 >>> table = pd.pivot_table(df, values='D', index=['A', 'B'], ... columns=['C'], aggfunc="sum") >>> table C large small A B bar one 4.0 5.0 two 7.0 6.0 foo one 4.0 1.0 two NaN 6.0 我们还可以使用fill_value参数填充缺失值。 >>> table = pd.pivot_table(df, values='D', index=['A', 'B'], ... columns=['C'], aggfunc="sum", fill_value=0) >>> table C large small A B bar one 4 5 two 7 6 foo one 4 1 two 0 6 下一个示例通过取多列的平均值来进行聚合。 >>> table = pd.pivot_table(df, values=['D', 'E'], index=['A', 'C'], ... aggfunc={'D': "mean", 'E': "mean"}) >>> table D E A C bar large 5.500000 7.500000 small 5.500000 8.500000 foo large 2.000000 4.500000 small 2.333333 4.333333 我们还可以为任何给定值列计算多种类型的聚合。 >>> table = pd.pivot_table(df, values=['D', 'E'], index=['A', 'C'], ... aggfunc={'D': "mean", ... 'E': ["min", "max", "mean"]}) >>> table D E mean max mean min A C bar large 5.500000 9 7.500000 6 small 5.500000 9 8.500000 8 foo large 2.000000 5 4.500000 4 small 2.333333 6 4.333333 2