1. 为报告结构化数据
当你制作报告时,不仅仅是把一堆数据包装得漂亮,而是要让信息清晰易懂。数据准备直接影响到你的报告是否能被快速理解。
数据透视表:我们的万能瑞士军刀
数据透视表是一个强大的工具,用于汇总、聚合和展示数据,它常用于 Excel 的分析。在 pandas 中,我们可以通过 pivot_table
方法轻松创建数据透视表。
来看一个简单的例子。
假设你有如下商店销售数据:
import pandas as pd
data = {
'产品': ['橙子', '苹果', '香蕉', '橙子', '香蕉', '苹果'],
'月份': ['一月', '一月', '一月', '二月', '二月', '二月'],
'销售额': [150, 200, 250, 130, 180, 210]
}
df = pd.DataFrame(data)
要创建一个数据透视表,显示每种产品每个月的销售额总和,可以使用 pivot_table
方法。
pivot_df = df.pivot_table(values='销售额', index='产品', columns='月份', aggfunc='sum')
print(pivot_df)
这个简单的例子展示了如何快速根据类别和日期聚合数据——这是报告的理想基础。
2. 使用 pandas 方法准备数据
pivot_table
方法
pivot_table
方法非常灵活,不仅可以对数据求和,还可以使用其他聚合函数,比如 mean
, count
等。
来看一下如何反转数据以显示销售额的平均值:
pivot_mean_df = df.pivot_table(values='销售额', index='产品', columns='月份', aggfunc='mean')
print(pivot_mean_df)
crosstab
方法
pandas 的 crosstab
方法类似于数据透视表,但它用于频率计算。假设我们想计算每个产品在不同月份的销售次数:
cross_df = pd.crosstab(df['产品'], df['月份'])
print(cross_df)
这种方法在研究类别数据分布或分析事件频率时非常有用。
3. 使用多级索引调整数据展示
多级索引
是的,pandas 允许你打破二维数据的限制,使用多级索引。这对于表示多层级的聚合数据非常有用。例如,我们向数据集中添加 "年份",并创建多级索引。
data['年份'] = [2023, 2023, 2023, 2024, 2024, 2024]
df = pd.DataFrame(data)
multi_pivot_df = df.pivot_table(values='销售额', index=['年份', '产品'], columns='月份', aggfunc='sum')
print(multi_pivot_df)
现在我们的数据按年份和产品聚合,使其更具信息性。
4. 实践与分析
让我们运用所学内容进行实践。任务:准备销售报告数据。
假设你有以下销售数据:
data = {
'产品': ['橙子', '橙子', '苹果', '苹果', '香蕉', '香蕉'],
'月份': ['一月', '二月', '一月', '二月', '一月', '二月'],
'年份': [2023, 2023, 2024, 2024, 2023, 2024],
'销售额': [150, 200, 180, 220, 120, 130]
}
df = pd.DataFrame(data)
你的任务是创建一个数据透视表,显示每种产品每个月的销售额总和,包括按年份的总数据。
pivot_total_df = df.pivot_table(values='销售额', index=['年份', '产品'], columns='月份', aggfunc='sum', margins=True, margins_name='总计')
print(pivot_total_df)
这一行“总计”将显示所有类别的总和,这在需要全面查看时非常有用。
5. 关于数据展示和分析策略的讨论
使用 pandas 准备报告数据不仅仅是数学,更是一门艺术。这个过程中重要的一部分是选择最具信息量的方式来展示数据,无论是简单的汇总表还是复杂的图表。 在现实生活中,这种结构化方法不仅有助于理解当前指标,还可以支持决策。你可能会发现自己像个魔法师,把无聊的数字行变成清晰的图景。
如果你想成为自动化报告准备的高手,请不要忘记 pandas 的强大功能,也不要害怕尝试各种方法和技巧。这项技能不仅对生成分析摘要有帮助,还会在面试和未来职业中派上用场。 勇敢地进入数据的世界,让你的报告既丰富多彩又信息量满满且易于理解!
GO TO FULL VERSION