write() 中不支持的类型 <(class 'pandas.core.frame.DateFrame'>
Unsupported type <(class 'pandas.core.frame.DateFrame'> in write()
我正在尝试使用以下代码将 2 列输出到 excel sheet,但出现语法错误。如何解决这个问题?谢谢
import xlsxwriter
import pandas as pd
workbook=xlsxwriter.Workbook('file.xlsx')
worksheet=workbook.add_worksheet('sheet1')
df=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]},columns=['A','B'])
col=['A','B']
df[col]
text_format = workbook.add_format({ 'align': 'left', 'fg_color': 'blue', 'bold':True})
worksheet.write(7,5,df[col],text_format)
workbook.save()
问题是 xlsxwriter
无法输出整个 DataFrame
对象。您可以执行以下两项操作之一:
使用 xlsxwriter
作为 excel 编写器并调用 df.to_excel()
来创建文件。您将无法获得相同的定位或格式,但您可以随后打开 XLSX 文件并修改格式。
遍历 DataFrame
并为每一列数据调用 write_column()
。这样的事情应该有效:
import xlsxwriter
import pandas as pd
workbook = xlsxwriter.Workbook('file.xlsx')
worksheet = workbook.add_worksheet('sheet1')
df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6]}, columns=['A','B'])
text_format = workbook.add_format({'align': 'left', 'bold': True})
header_format = workbook.add_format({'align': 'left', 'fg_color': 'blue', 'bold': True})
start_row = 7
start_col = 5
worksheet.write_row(start_row, start_col, df.columns, header_format)
for i, column in enumerate(df.columns, start=start_col):
worksheet.write_column(start_row+1, i, df[column], text_format)
workbook.close()
我正在尝试使用以下代码将 2 列输出到 excel sheet,但出现语法错误。如何解决这个问题?谢谢
import xlsxwriter
import pandas as pd
workbook=xlsxwriter.Workbook('file.xlsx')
worksheet=workbook.add_worksheet('sheet1')
df=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]},columns=['A','B'])
col=['A','B']
df[col]
text_format = workbook.add_format({ 'align': 'left', 'fg_color': 'blue', 'bold':True})
worksheet.write(7,5,df[col],text_format)
workbook.save()
问题是 xlsxwriter
无法输出整个 DataFrame
对象。您可以执行以下两项操作之一:
使用
xlsxwriter
作为 excel 编写器并调用df.to_excel()
来创建文件。您将无法获得相同的定位或格式,但您可以随后打开 XLSX 文件并修改格式。遍历
DataFrame
并为每一列数据调用write_column()
。这样的事情应该有效:import xlsxwriter import pandas as pd workbook = xlsxwriter.Workbook('file.xlsx') worksheet = workbook.add_worksheet('sheet1') df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6]}, columns=['A','B']) text_format = workbook.add_format({'align': 'left', 'bold': True}) header_format = workbook.add_format({'align': 'left', 'fg_color': 'blue', 'bold': True}) start_row = 7 start_col = 5 worksheet.write_row(start_row, start_col, df.columns, header_format) for i, column in enumerate(df.columns, start=start_col): worksheet.write_column(start_row+1, i, df[column], text_format) workbook.close()