Pandas将多个DataFrame写入到一个Excel中

最近除了网站接口测试的任务,还有一个数据分析任务,没错工作跨度就是这么大,在这一次数据分析中,数据源是一个字段较多,行数较多的数据,需要对这些数据进行多类别的分类之后,再进行数据分析,再以往的工作的中,如果是简单的分类,笔者会将这些新分类出来的DataFrame存放到一个的新的Excel中用于分析,但是这次,需要分析的太多,并且有需求将所有分类出来的DataFrame放到一个Excel中,这和笔者平时工作习惯有点不符合,所以学习了如何用Pandas将分类好的DataFrame放到一个Excel中。

首先,要了解一个Excel工作簿中,可以创建多个工作表,每一个工作表可以存放一个DataFrame,由于需要分类的项目比较多,因此编写一个方法会加快我们的工作速度,在Pandas中pd.ExcelWriter这个方法可以对已经创建的Excel文件进行编写和修改,如何将DataFrame放入到新的Excel表格中,使用的代码如下:

#将下方的中文替换为自己的代码和工作表名称
with pd.ExcelWriter("已存在的Excel文件的名字.xlsx",engine='openpyxl',mode='a') as writer:
        new_df1.to_excel(writer,sheet_name="新创建Sheet(工作表)的名称",index=False)

其中,engine参数是选择使用的修改Excel的引擎,其他常用的引擎还包括 xlsxwriter 和 xlwt,都是可以对Excel进行修改和编写。如果出现了报错:如找到不到openpyxl或者是xlwt这类的报错,意味着你的工作环境中没有这两个驱动,使用Win+R输入CMD打开CMD输入下面格式的代码来下载对应驱动:

pip install xxxxx(驱动名称)

而mode参数是打开Excel的方式,其中a代表了追加的模式,即不会覆盖原始的数据,除此之外,还有‘r’表示可读性的打开Excel文件和‘w’覆盖式的文件编写,如果遇到了Excel无法被写入新的数据,或者写入新的数据之后原本的数据不见了,可以查看一下是否是mode这个参数设置错误了。

sheet_name这个参数是新创建的Excel工作表的名称,注意,不能同名,不然会报错。

以上就是如何将多个DataFrame写入到一个Excel工作簿的思路和过程,有需求和兴趣的小伙伴可以自己试一下。如果有任何建议和意见,欢迎再评论区中指出!谢谢各位!

使用 pandas多个 DataFrame 写入 Excel 不同 Sheet 有以下几种方法: ### 方法一:使用 `pd.ExcelWriter` 使用 `pd.ExcelWriter` 上下文管理器可以方便地将多个 DataFrame 写入同一个 Excel 文件的不同 Sheet 中。示例代码如下: ```python import pandas as pd # 构造示例数据 df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]}) # 创建 ExcelWriter 对象 with pd.ExcelWriter('stocks.xlsx') as writer: df1.to_excel(writer, sheet_name='df1') df2.to_excel(writer, sheet_name='df2') ``` 这种方法将 `df1` 和 `df2` 分别写入了名为 'df1' 和 'df2' 的 Sheet 中 [^1]。 ### 方法二:通过循环写入 可以构造一个 DataFrame 列表,然后通过循环将每个 DataFrame 写入不同的 Sheet。示例代码如下: ```python import pandas as pd import numpy as np # 构造数据 df1 = pd.DataFrame(np.arange(6).reshape(2, 3)) df2 = pd.DataFrame(np.arange(12).reshape(3, 4)) df3 = pd.DataFrame(np.arange(24).reshape(3, 8)) df_list = [df1, df2, df3] # 输出结果 file_path = r'./测试.xlsx' i = 1 for df_item in df_list: if i == 1: df_item.to_excel(file_path, index=False) else: try: writer = pd.ExcelWriter(file_path, mode='a') df_item.to_excel(writer, sheet_name='sheet{}'.format(i), index=False) writer.save() except Exception as e: print(e) print("任务出错了~") i += 1 ``` 此方法将多个 DataFrame 依次写入 Excel 文件的不同 Sheet 中,Sheet 名称依次为 'sheet1'、'sheet2' 等 [^3]。 ### 方法三:另一种使用 `pd.ExcelWriter` 的方式 先创建 `pd.ExcelWriter` 对象,然后分别将不同的 DataFrame 写入不同的 Sheet,最后保存文件。示例代码如下: ```python import pandas as pd # 假设已经有 df1 和 df2 df1 = pd.DataFrame({'Column1': [1, 2], 'Column2': [3, 4]}) df2 = pd.DataFrame({'Column3': [5, 6], 'Column4': [7, 8]}) xlswriter = pd.ExcelWriter('F:/test.xlsx') df1.to_excel(xlswriter, 'test1') df2.to_excel(xlswriter, '测试') # 可以自定义 sheet 名,支持中文 xlswriter.save() ``` 该方法将 `df1` 写入 'test1' 工作表,`df2` 写入 '测试' 工作表 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值