python处理excel数据代码,python处理excel数据脚本

本文介绍了如何使用Python处理Excel数据,包括使用SQLite作为嵌入式数据库,通过pandas逐步加载大型数据集,以及如何将数据从Excel文件转换到SQLite表中进行分析。作者还提供了一个示例脚本以演示整个过程。
摘要由CSDN通过智能技术生成

大家好,给大家分享一下python处理excel数据新建一列并写入数据,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!

Source code download: 本文相关源码

这篇文章主要介绍了一个有趣的事情,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下用python画简单笑脸代码

与从事分析工作的人交谈,他们会告诉你他们对Excel的爱恨情仇:

Excel能做很多事情;当涉及到更大的数据集时,这简直是一种痛苦。数据需要很长时间才能加载,在你意识到机器的内存耗尽之前,整个事情就变得无法管理了python自学多久可以接单,python学多久可以找工作。更不用说Excel最多只能支持1,048,576行。

如果有一种简单的方法,那就是将数据传输到SQL数据库中进行分析。这就是Python拯救世界的方式。

8e46e8ecd1b4ab4132b11b6e33834ee5.jpeg-wh_651x-s_2524268267.jpeg

Python中的SQL

首先,让我们研究一下在Python中使用SQL时最流行的选项:MySQL和SQLite。

MySQL有两个流行的库:PyMySQL和MySQLDb;而SQLite有SQLite3。

SQLite就是所谓的嵌入式数据库,这意味着它在我们的应用程序中运行,因此不需要先在某个地方安装它(不像MySQL)。

这是一个重要的区别;在我们寻求快速数据分析的过程中起着关键作用。因此,我们将继续学习如何使用SQLite。

在Python中设置SQLite

我们需要做的第一件事是导入库:

import sqlite3

然后,我们需要确定是否要在任何地方保存这个数据库,还是在应用程序运行时将它保存在内存中。

如果决定通过导入任何数据来实际保存数据库,那么我们必须给数据库一个名称,例如' FinanceExplainedDb ',并使用以下命令:

dbname='FinanceExplainedDb'

conn=sqlite3.connect(dbname + '.sqlite')

另一方面,如果我们想把整个东西保存在内存中,并在完成后让它消失,我们可以使用以下命令:

conn=sqlite3.connect(':memory:')

至此,SQLite已经全部设置好,可以在Python中使用了。假设我们在Table 1中加载了一些数据,我们可以用以下方式执行SQL命令:

cur=conn.cursor()

cur.execute('SELECT * FROM Table1')

for row in cur:

print(row)

现在让我们探索如何通过使用pandas的应用程序使数据可用。

使用pandas加载数据

假设我们已经有了数据,我们想要进行分析,我们可以使用Pandas库来做这件事。

首先,我们需要导入pandas库,然后我们可以加载数据:

import pandas as pd

#if we have a csv file

df=pd.read_csv('ourfile.csv')

#if we have an excel file

df=pd.read_excel('ourfile.xlsx')

一旦我们加载数据,我们可以把它直接放入我们的SQL数据库与一个简单的命令:

df.to_sql(name='Table1',con=conn)

如果在同一个表中加载多个文件,可以使用if_exists参数:

df.to_sql(name='Table1',con=conn,if_exists='append')

在处理较大的数据集时,我们将无法使用这个单行命令来加载数据。我们的应用程序将耗尽内存。相反,我们必须一点一点地加载数据。在这个例子中,我们假设每次加载10,000行:

chunksize=10000

for chunk in pd.read_csv('ourfile.csv', chunksizechunksize=chunksize):

chunk.to_sql(name='Table1',con=conn,if_exists='append')

把所有的东西放在一起

为了将所有内容综合起来,我们提供一个Python脚本,它涵盖了我们讨论的大部分内容。

import sqlite3, pandas as pd, numpy as np

#####Creating test data for us -- you can ignore

from sklearn import datasets

iris=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=10

for chunk in pd.read_csv('TestData.csv', chunksizechunksize=chunksize):

chunkchunk.columns= chunk.columns.str.replace(' ', '_') #replacing spaces with underscores for column names

chunk.to_sql(name='Table1',con=conn,if_exists='append')

cur.execute('SELECT * FROM Table1')

names=list(map(lambda x: x[0], cur.deion)) #Returns the column names

print(names)

for row in cur:

print(row)

cur.close()

【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值