CodeGym /课程 /Python SELF ZH /将过滤和处理后的数据导出到 Excel

将过滤和处理后的数据导出到 Excel

Python SELF ZH
第 28 级 , 课程 4
可用

想象一下,你是一个太空探险家,数据就是你的星空地图。它又大又复杂,但绝对不可或缺。在进行了仔细的过滤和分析后,这些数据需要被整理并保存为易读的格式。这时候,我们的英雄登场了——数据导出到 Excel。它可以让你与同事分享你的发现,或者为重要会议准备报告。在这个数据如石油般珍贵的世界中,只需几行代码就能创建报告的技能可能价值百万。

1. 数据导出的核心要点

数据导出到 Excel 不仅仅是格式的转换,而是让报告变得更方便、更易理解的机会。正如我认识的一位程序员朋友所说:“Python 可以施展魔法,但即使是哈利波特也需要一根魔杖。”在这里,我们的魔杖就是 pandas 库中的 to_excel 方法。

to_excel 的基础用法

先从一个简单的例子开始,将 DataFrame 导出到 Excel 文件。假设我们有一个记录马拉松参赛者数据的 DataFrame

Python

import pandas as pd

# 创建 DataFrame
data = {
    '名字': ['安娜', '鲍里斯', '维克托', '加莉娜'],
    '年龄': [29, 34, 22, 28],
    '城市': ['莫斯科', '圣彼得堡', '喀山', '新西伯利亚'],
    '完赛时间': ['03:15:30', '03:45:10', '03:25:45', '03:50:05']
}

df = pd.DataFrame(data)

# 将 DataFrame 导出到 Excel
df.to_excel('marathon_participants.xlsx', index=False)

在这个例子中,我们创建了一个简单的 DataFrame,并将其导出到文件 marathon_participants.xlsx。注意,我们设置了参数 index=False,这样当不需要时就不会将 DataFrame 的索引导出到 Excel。

添加格式和样式

接下来我们提升到一个更高的水平——添加样式。谁说数据不能时尚?借助 pandasopenpyxl,可以轻松格式化表格并添加样式。

Python

import pandas as pd
from openpyxl import Workbook

# 创建 DataFrame
data = {
    '名字': ['安娜', '鲍里斯', '维克托', '加莉娜'],
    '年龄': [29, 34, 22, 28],
    '城市': ['莫斯科', '圣彼得堡', '喀山', '新西伯利亚'],
    '完赛时间': ['03:15:30', '03:45:10', '03:25:45', '03:50:05']
}

df = pd.DataFrame(data)

# 带格式导出到 Excel
with pd.ExcelWriter('styled_marathon.xlsx', engine='openpyxl') as writer:
    df.to_excel(writer, index=False, sheet_name='参赛者')
    worksheet = writer.sheets['参赛者']
    for col in worksheet.columns:
        max_length = 0
        column = col[0].column_letter # 获取列的字母表示
        for cell in col:
            try:
                if len(str(cell.value)) > max_length:
                    max_length = len(cell.value)
            except:
                pass
        adjusted_width = (max_length + 2) * 1.2
        worksheet.column_dimensions[column].width = adjusted_width

在这个例子中,我们不仅导出了数据,还根据内容调整了列宽,使其在 Excel 中看起来更整洁。使用 openpyxl,我们可以访问表格并应用样式。

处理多个工作表

创建包含多个工作表的报告听起来好像超级英雄的任务,但其实很简单。想象一下,你希望将不同年度比赛的数据保存在不同的工作表中。

Python

import pandas as pd

# 不同年份的数据
data_2022 = {
    '名字': ['德米特里', '叶莲娜'],
    '年龄': [30, 29],
    '城市': ['鄂木斯克', '符拉迪沃斯托克'],
    '完赛时间': ['03:20:05', '03:35:40']
}

data_2023 = {
    '名字': ['伊戈尔', '卡捷琳娜'],
    '年龄': [31, 27],
    '城市': ['车里雅宾斯克', '叶卡捷琳堡'],
    '完赛时间': ['03:29:10', '03:40:20']
}

df_2022 = pd.DataFrame(data_2022)
df_2023 = pd.DataFrame(data_2023)

# 将数据写入不同的工作表
with pd.ExcelWriter('marathon_data.xlsx') as writer:
    df_2022.to_excel(writer, sheet_name='2022', index=False)
    df_2023.to_excel(writer, sheet_name='2023', index=False)

这个代码创建了一个名为 marathon_data.xlsx 的文件,其中包含两个工作表,分别存储了不同年份的数据。这样很适合按照年份、项目或其他类别来分隔数据。

2. 总有改进的空间

试着思考一下,如何将导出自动化集成到你的项目中更复杂的流程中。你可能想在导出之后自动生成图表?或者将报告与网页界面集成,以便更方便地访问?

无论如何,将数据导出到 Excel 只是创建美观且信息丰富的报告的起点,这些报告能让你在工作或者学习中闪闪发光!

现在你已经掌握了自动化数据导出的工具,而且知道如何让你的 Excel 报告更易读、更吸引人。所以,加油吧,让你的数据为你所用!

1
调查/小测验
编写查询第 28 级,课程 4
不可用
编写查询
编写查询
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION