透视表根本观点
透视表是一种交互式的表格报告,它可以动态地对数据集进行分组、排序、总计以及其他汇总打算。在Pandas中,通过pivot_table()函数,我们可以轻松实现这一功能,以灵巧的办法将长列表格式的数据转换为更易于理解的二维交叉表格形式。
Pandas DataFrame透视表制作步骤与示例首先,假设我们有一个包含发卖记录的DataFrame:
import pandas as pd# 创建一个仿照的发卖数据集data = {39;Region': ['East', 'West', 'East', 'West', 'East', 'West'], 'Category': ['Electronics', 'Clothing', 'Electronics', 'Clothing', 'Electronics', 'Clothing'], 'Month': ['Jan', 'Jan', 'Feb', 'Feb', 'Mar', 'Mar'], 'Sales': [1500, 2000, 2500, 3000, 3500, 4000], 'Expenses': [500, 600, 700, 800, 900, 1000]}df = pd.DataFrame(data)print(df)
1. 根本透视表创建
# 创建透视表,按Region和Category分组,对Sales求和pivot_basic = pd.pivot_table(df, values='Sales', index=['Region'], columns=['Category'], aggfunc=np.sum)print(pivot_basic)
在这个例子中,我们将Region作为行索引,Category作为列索引,然后对Sales进行求和操作。
2. 添加多重指标
# 在同一个透视表中添加多个度量指标pivot_advanced = pd.pivot_table(df, values=['Sales', 'Expenses'], index=['Region'], columns=['Category'], aggfunc={'Sales': np.sum, 'Expenses': np.mean})print(pivot_advanced)
现在我们在同一张透视表中同时展示了每个区域各种别的发卖额总和和均匀本钱。
3. 设置层级列名和添补缺失落值
# 设置多层次列名,并处理缺失落值pivot_filled = pd.pivot_table(df, values='Sales', index=['Region'], columns=['Category', 'Month'], fill_value=0, aggfunc=np.sum)print(pivot_filled)
这里我们按照Region、Category和Month进行分组,并且用0添补未涌现过的组合。
4. 利用自定义函数
# 运用自定义函数进行打算def profit(sales, expenses): return sales - expensespivot_custom_func = pd.pivot_table(df, values=['Sales', 'Expenses'], index=['Region'], columns=['Category'], aggfunc={'Sales': np.sum, 'Expenses': np.sum}, margins=True)pivot_custom_func['Profit'] = pivot_custom_func.eval('Sales - Expenses')print(pivot_custom_func)
此处,我们不仅进行了常规的求和操作,还定义了一个打算利润的自定义函数,并将其运用于透视表结果上。
进阶技巧与把稳事变合并层次列:可以利用flatten_levels()方法来合并具有多级索引的列标签。设置汇总行或列:通过设置margins=True可以得到包括所有行或列的总计。数据过滤:在构建透视表前,可先利用条件筛选出须要剖析的数据子集。性能优化:对付大数据集,可考试测验利用Dask库等分布式打算框架提升透视表天生速率。总结Pandas的透视表功能大大简化了数据剖析中的繁芜统计任务,它许可我们从不同角度不雅观察数据,揭示数据内在联系。闇练节制并利用Pandas DataFrame透视表技能,无疑会显著提升Python Web开拓中数据预处理、报表天生以及决策支持系统的构建效率。
关注我,手把手带你快速入门 AI 机器学习编程!