xlsxwriter.Workbook写入pd.DataFrame
时间: 2023-02-07 19:32:46 浏览: 326
使用 xlsxwriter 库可以方便地将 Pandas DataFrame 写入 Excel 文件。
使用步骤如下:
1. 安装 xlsxwriter 库。
2. 导入 xlsxwriter 库和 Pandas 库。
3. 创建一个 Workbook 对象,并将其储存在变量 `workbook` 中。
4. 使用 Workbook 对象的 add_worksheet() 方法创建一个工作表,并将其储存在变量 `worksheet` 中。
5. 使用 DataFrame 的 to_excel() 方法将数据写入工作表中。
例子:
```
import xlsxwriter
import pandas as pd
# 创建一个 Workbook 对象
workbook = xlsxwriter.Workbook('data.xlsx')
# 在 Workbook 中创建一个工作表
worksheet = workbook.add_worksheet()
# 读入数据
df = pd.read_csv('data.csv')
# 将数据写入工作表
df.to_excel(workbook, sheet_name='Sheet1', index=False)
# 关闭 Workbook
workbook.close()
```
希望这对你有帮助!
相关问题
发生异常: ValueError Invalid file path or buffer object type: <class 'openpyxl.workbook.workbook.Workbook'> File "C:\Users\31088\Desktop\py数据\爬虫\上海和北京的美食.py", line 80, in <module> info.to_excel(excel_writer = writer,sheet_name = "北京美食") ValueError: Invalid file path or buffer object type: <class 'openpyxl.workbook.workbook.Workbook'>
这个错误提示表明,在使用 `pandas` 库的 `to_excel` 函数将数据写入 Excel 文件时,传递的 `excel_writer` 参数类型不正确,它需要是一个文件路径或文件对象,但你传递的是一个 `Workbook` 对象。
要解决这个问题,你可以将 `Workbook` 对象转换为文件对象,然后将其传递给 `excel_writer` 参数。以下是一个示例代码:
```python
import openpyxl
import pandas as pd
# 创建一个 Workbook 对象
workbook = openpyxl.Workbook()
# 获取一个工作表对象
worksheet = workbook.active
# 写入数据
data = [
['Alice', 25, 'Female'],
['Bob', 30, 'Male'],
['Charlie', 35, 'Male']
]
for row in data:
worksheet.append(row)
# 将 Workbook 对象转换为文件对象
file = open('example.xlsx', 'wb')
workbook.save(file)
file.close()
# 使用 pandas 将数据写入 Excel 文件
dataframe = pd.DataFrame(data, columns=['Name', 'Age', 'Gender'])
with pd.ExcelWriter('example.xlsx') as writer:
dataframe.to_excel(writer, sheet_name='Sheet1')
```
在上面的代码中,我们首先使用 `openpyxl` 库创建了一个 `Workbook` 对象,写入了一些数据,并将其保存到文件中。然后,我们使用 `pandas` 库的 `DataFrame` 类创建了一个数据帧对象,并使用 `ExcelWriter` 类创建了一个写入器对象。最后,我们使用 `to_excel` 函数将数据帧写入 Excel 文件中。在这个过程中,我们不需要再次创建 `Workbook` 对象,而是直接使用之前创建的文件。
如果你已经有一个 Excel 文件,并想将数据写入其中,也可以使用类似的方法。即先使用 `openpyxl` 库打开 Excel 文件,获取工作表对象,将数据写入工作表中,然后保存文件并关闭文件,最后使用 `pandas` 库将数据写入 Excel 文件中。
怎么用python将三组100* 50大小的pd.DataFrame格式写入到一个csv文件中不同的工作表中
你可以使用 Pandas 库的 `to_excel` 方法将三个 DataFrame 写入到不同的工作表中,然后将 Excel 文件转换为 CSV 文件。具体的实现步骤如下:
1. 将三个 DataFrame 写入到 Excel 文件中的不同工作表中:
```python
import pandas as pd
# 假设三个 DataFrame 分别为 df1, df2, df3
writer = pd.ExcelWriter('data.xlsx')
df1.to_excel(writer, sheet_name='Sheet1')
df2.to_excel(writer, sheet_name='Sheet2')
df3.to_excel(writer, sheet_name='Sheet3')
writer.save()
```
2. 将 Excel 文件转换为 CSV 文件:
```python
import xlrd
import csv
# 打开 Excel 文件
workbook = xlrd.open_workbook('data.xlsx')
# 遍历每个工作表,将数据写入到 CSV 文件中
for sheet_name in workbook.sheet_names():
worksheet = workbook.sheet_by_name(sheet_name)
with open(f'{sheet_name}.csv', 'w', newline='') as csv_file:
writer = csv.writer(csv_file)
for row in range(worksheet.nrows):
writer.writerow(worksheet.row_values(row))
```
这样就可以将三个 DataFrame 分别写入到不同的 CSV 文件中。注意,需要安装 `xlrd` 和 `csv` 两个库。