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()