pd.pivot_table与pd.crosstab
发布网友
发布时间:2024-10-05 03:21
我来回答
共1个回答
热心网友
时间:2024-11-16 07:07
在数据分析时,数据透视表和交叉表是常用的工具。pandas库中的pd.pivot_table和pd.crosstab函数分别用于构建这两种表,下面详细介绍它们的使用方法和区别。
数据透视表,实现数据聚合与分组功能,通过pd.pivot_table函数构建。此函数参数包括data(数据源)、values(聚合列)、index(行索引)、columns(列索引)、aggfunc(聚合方法,如求平均值)、fill_value(缺失值填充)、margin(添加总计行/列)、dropna(忽略NA值,默认为True)和margins_name(总计行/列名称)。
例如,使用data进行数据透视,计算不同key下value的和,或以date和key共同数据透视,统计不同组合下values的数量。
交叉表,用于计算因子频率表,默认情况下,使用pd.crosstab函数创建。此函数参数有index(行分组值)、columns(列分组值)、values(聚合值数组)、rownames(行标签)、colnames(列标签)、aggfunc(聚合方法,需与values指定)、margins(是否添加总计行/列)、dropna(是否忽略NA值,默认为True)和normalize(是否归一化,为True显示百分比)。
举例,仅接收两个Series时,提供频率表,统计A的唯一值在B唯一值中的出现次数;以A和B界定分组,计算每组中第三个系列C的和。
两者的区别在于,数据透视表是一个更广泛的函数,能实现多种统计和分组操作;而交叉表是特定于构建因子频率表的简化版本,当只需统计分组频率时更为便利。