从CSV生成多个xlsx文件

2024-04-25 19:31:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个CSV文件生成多个excel文件,但生成几个文件后出现以下错误:

UnicodeDecodeError:'ascii'编解码器无法解码位置8中的字节0xc3:序号不在范围内(128)

这个错误是在生成几个文件后出现的,我不确定是否有任何具体的文件或任何问题的代码,请帮助

代码如下:

 #!/usr/bin/env python
# coding: utf-8


import pandas as pd
import pandas.io.formats.excel
pandas.io.formats.excel.header_style = None


class AdvertiserList(object):

    def __init__(self, input_file):

        self.input_file = input_file
        self.file_csv = None
        self.writer = None
        self.path = None

    def read_csv(self):
        file_csv = pd.read_csv(self.input_file)
        file_csv_br = file_csv[file_csv['Market'] == 'BR']
        file_csv = file_csv.drop(file_csv_br.index, axis=0)
        self.file_csv = file_csv

    def generate_multiple_file(self):
        df_by_market = self.file_csv.groupby('Market')
        self.path = "C://Adops-Git//Files//"
        for(market, market_df) in df_by_market:
            self.writer = pd.ExcelWriter(self.path + "{}.xlsx".format(market), engine="xlsxwriter")
            # file_name = self.writer
            market_df.to_excel(self.writer, index=False)
            self.writer.save()
            self.writer.close()

    def main(self):
        self.read_csv()
        self.generate_multiple_file()


if __name__ == "__main__":
    object_advertiser = AdvertiserList('C://Adops-Git//Files//Account_&_Advertisers_List_data.csv')
    object_advertiser.main()

Tags: 文件csvpathselfnonepandasdfinput
1条回答
网友
1楼 · 发布于 2024-04-25 19:31:01

试试看

market_df.to_excel(self.path + "{}.xlsx".format(market), index=False)

直接使用默认的xlsx编写器,该编写器本机支持unicode

另外,如果没有编码参数选项,那么从注释中可以看出,您可能使用的是熊猫的过时版本。你知道吗

相关问题 更多 >