当Excel出现大数据问题时,是时候让Python出手了。在处理大型数据集时,这可能会让人头疼。加载数据需要很长时间,在您意识到机器内存耗尽之前,整个事情变得难以管理。更不用说Excel最多只支持1,048,576行。如果有一种简单的方法,那就是将数据通过管道传输到SQL数据库中进行分析。这就是Python拯救世界的方式。Python中的SQL首先,让我们检查一下在Python中使用SQL时最流行的选项:MySQL和SQLite。MySQL有两个流行的库:PyMySQL和MySQLDb;SQLite有SQLite3。SQLite是所谓的嵌入式数据库,这意味着它在我们的应用程序内部运行,因此无需先将其安装在某个地方(与MySQL不同)。这是一个重要的区别;在我们寻求快速数据分析的过程中发挥着关键作用。因此,我们将继续学习如何使用SQLite。在Python中设置SQLite我们需要做的第一件事是导入库:importsqlite3然后我们需要决定是将这个数据库保存在任何地方还是在应用程序运行时将其保存在内存中。如果我们决定通过导入任何数据来实际保存数据库,那么我们必须给数据库起一个类似“FinanceExplainedDb”的名称并使用以下命令:dbname='FinanceExplainedDb'conn=sqlite3.connect(dbname+'.sqlite')On另一方面,如果我们想把整个事情都保存在内存中,并在我们完成后让它消失,我们可以使用以下命令:conn=sqlite3.connect(':memory:')此时,SQLite就是全部设置为在Python中使用。假设我们已经加载了表1中的一些数据,我们可以通过以下方式执行SQL命令:cur=conn。pandas的应用使得数据可用。使用pandas加载数据假设我们已经有了数据并且想要分析它,我们可以使用Pandas库来完成这项工作。首先,我们需要导入pandas库,然后我们可以加载数据:,我们可以直接用一个简单的命令把它放到我们的SQL数据库中:df.to_sql(name='Table1',con=conn)如果在同一个表中加载多个文件,可以使用if_exists参数:df.to_sql(name='Table1',con=conn,if_exists='append')在处理较大的数据集时,我们将无法使用这一行命令来加载数据。我们的应用程序将耗尽内存。相反,我们必须一点一点地加载数据。在这个例子中,我们假设每次加载10,000行:chunksize=10000forchunkinpd.read_csv('ourfile.csv',chunksizechunksize=chunksize):chunk.to_sql(name='Table1',con=conn,if_exists='append')将它们组合在一起为了将它们组合在一起,我们提供了一个Python脚本,它涵盖了我们讨论的大部分内容。importsqlite3,pandasaspd,numpyasnp#####Creatingtestdataforus--youcanignorefromsklearnimportdatasetsiris=datasets.load_iris()df1=pd.DataFrame(data=np.c_[iris['data'],iris['target']],columns=iris['feature_names']+['target'])df1.to_csv('TestData.csv',index=False)###########################conn=sqlite3.connect(':memory:')cur=conn.cursor()chunksize=10forchunkinpd.read_csv('TestData.csv',chunksizechunksize=chunksize):chunkchunk.columns=chunk.columns.str.replace('','_')#replacingspaceswithunderscoresforcolumnnameschunk.to_sql(name='Table1',con=conn,if_exists='append')cur.execute('SELECT*FROMTable1')names=list(map(lambdax:x[0],cur.description))#Returnsthecolumnnamesprint(names)forrowincur:print(row)cur.close()
