Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pandas/numpy编码需要很长时间才能完成_Python_Pandas_Numpy - Fatal编程技术网

Python pandas/numpy编码需要很长时间才能完成

Python pandas/numpy编码需要很长时间才能完成,python,pandas,numpy,Python,Pandas,Numpy,我正在尝试使用pandas/numpy将数据从MS-SQL表导出到xlsx。单个表格包含2013年至2016年的数据,我需要在单独的excel工作簿中导出年度数据。 导出后,每个工作簿将有大约150K条记录,共50列 下面的代码可以工作,但是需要花费一定的时间才能完全导出所有记录。它只是继续运行(超过8小时)。 我不确定编码是否会导致这种延迟,但我的数据包含一些奇怪的字符,不添加编码就无法执行此代码 请帮忙 import numpy as np import pandas as pan def

我正在尝试使用pandas/numpy将数据从MS-SQL表导出到xlsx。单个表格包含2013年至2016年的数据,我需要在单独的excel工作簿中导出年度数据。 导出后,每个工作簿将有大约150K条记录,共50列

下面的代码可以工作,但是需要花费一定的时间才能完全导出所有记录。它只是继续运行(超过8小时)。 我不确定编码是否会导致这种延迟,但我的数据包含一些奇怪的字符,不添加编码就无法执行此代码

请帮忙

import numpy as np
import pandas as pan

def executeQuery(self, year1): 
        conn = pyodbc.connect(r'DRIVER={SQL Server};SERVER=%s;Trusted_Connection=True;'% (dbserver))
        df = pan.read_sql_query(query + year1, conn)
        return df


def exportXL(self, path):
    year = ['2013', '2014', '2015', '2016']
    for x in year:
        data = self.executeQuery(x)
        data = self.encode(data)

        writer = pan.ExcelWriter(filename)
        data.to_excel(writer, sheet_name = x, engine='xlsxwriter', index=False)
        writer.save()
    pass


def encode(self, dataframe):
    for a in dataframe.select_dtypes([np.object]).columns[:]:
        dataframe[a] = dataframe[a].str.decode('ISO-8859-1').str.encode('utf-8')
    return dataframe

您确定没有编码步骤脚本无法工作吗?假设编码只对xlst引擎是必需的,您使用的是xlsxwriter。如果不起作用,您可以尝试将
中的编码设置为\u excel
,例如
data.to\u excel(writer,sheet\u name=x,engine='xlsxwriter',index=False,encoding=“utf-8”)
。您应该将此作为答案发布,以便其他人知道是什么解决了您的问题。您确定没有编码步骤脚本无法工作吗?假设编码只对xlst引擎是必需的,您使用的是xlsxwriter。如果不起作用,您可以尝试将
中的编码设置为\u excel
,例如
数据。设置为\u excel(writer,sheet\u name=x,engine='xlsxwriter',index=False,encoding=“utf-8”)
。您应该将其作为答案发布,以便其他人知道是什么解决了您的问题。