最近,pandas 2.2.1 已经支持使用 xlsxwriter 3.2.0 了。xlsxwriter 是一种 Python 的开源库,可以用来将 pandas 数据保存到 Excel 中。
本文将介绍使用 pandas 和 xlsxwriter 将数据保存到 Excel 的详细步骤。
安装 pandas 和 xlsxwriter
首先,确保已经安装了 pandas 和 xlsxwriter。你可以使用以下命令来安装它们:
pip install pandas==2.2.1 pip install xlsxwriter==3.2.0
导入所需的库
在 Python 脚本中,你需要导入 pandas 和 xlsxwriter 库:
import pandas as pd from openpyxl import Workbook
创建 DataFrame
接下来,你需要创建一个 Pandas DataFrame,并将其保存为一个 Excel 文件。以下是一个简单的示例数据:
data = {'Name': ['John', 'Emma', 'Mike'], 'Age': [25, 28, 31], 'City': ['New York', 'London', 'Paris']} df = pd.DataFrame(data)
将 DataFrame 写入 Excel 文件
现在,我们可以使用 xlsxwriter 将 DataFrame 写入一个名为 "output.xlsx" 的 Excel 文件中:
# 创建一个工作簿对象 workbook = Workbook() worksheet = workbook.active # 将 DataFrame 转换为字典格式并逐行写入工作表 for r in dataframe_to_rows(df, index=False, header=True): worksheet.append(r) # 保存工作簿到文件 workbook.save("output.xlsx")
在上面的代码中,dataframe_to_rows
是一个辅助函数,用于将 DataFrame 转换为逐行的字典列表,你可以通过运行 pip install openpyxl
命令来安装 openpyxl,它包含了这个函数。
完整示例代码
下面是一个完整的示例代码,演示了如何使用 pandas 2.2.1 和 xlsxwriter 3.2.0,并将一个包含姓名、年龄和城市的 DataFrame 保存到一个名为 "output.xlsx" 的 Excel 文件中:
import pandas as pd from openpyxl import Workbook, dataframe_to_rows from openpyxl.utils import get_column_letter # 创建 DataFrame data = {'Name': ['John', 'Emma', 'Mike'], 'Age': [25, 28, 31], 'City': ['New York', 'London', 'Paris']} df = pd.DataFrame(data) # 创建一个工作簿对象 workbook = Workbook() worksheet = workbook.active # 添加列标题 for col_idx, column in enumerate(df.columns, 1): column_letter = get_column_letter(col_idx) cell = worksheet.cell(row=1, column=col_idx) cell.value = column # 将 DataFrame 转换为字典格式并逐行写入工作表 for r in dataframe_to_rows(df, index=False, header=False): row_idx = worksheet.max_row + 1 for col_idx, value in enumerate(r, 1): column_letter = get_column_letter(col_idx) cell = worksheet.cell(row=row_idx, column=col_idx) cell.value = value # 保存工作簿到文件 workbook.save("output.xlsx")
结尾
使用 pandas 和 xlsxwriter 将数据保存到 Excel 中非常方便,你只需要按照以上步骤即可,同时,我们还可以通过修改代码实现更高级的功能。
有关问题和建议
如果你在使用过程中遇到了问题或者有一些建议,欢迎在下面的评论区留言。
谢谢观看!
如果你喜欢本篇文章,请关注并点赞!
评论留言