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

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

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

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.description)) #Returns the column names

print(names)

for row in cur:

print(row)

cur.close()

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

点赞 0

python处理excel大数据-当Excel遇到大数据问题,是时候用Python来拯救了相关推荐

  1. Python实训day12am【网络爬虫大作业简略解析:动态生成html页面、数据写入Excel】

    Python实训-15天-博客汇总表 目录 1.HTML页面设计 2.生成每个城市的HTML页面 2.1.HTML页面代码(weatherTemplate.html) 2.2.实例代码-动态生成htm ...

  2. python处理3000个excel-Python处理Excel数据的坑,一文让你不用重复犯错

    前言 本号之前已经分享过关于如何使用 Python 中的数据处理分析包 pandas 处理 Excel 的数据,本文继续分享一个小案例,此案例源于上周末帮朋友做的一个需求,并且是以 vba 编写解决, ...

  3. python数据导出excel_python 数据生成excel导出(xlwt,wlsxwrite)代码实例

    这篇文章主要介绍了python 数据生成excel导出(xlwt,wlsxwrite)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 话不多 ...

  4. csv 20位数据 如何打开可以预览完整数字_干货Python Pandas 做数据分析之玩转 Excel 报表分析...

    本篇文章选自作者在 GitChat 的分享,若有什么问题,可在公众号回复「小助手」添加小助手微信,邀请你进入技术交流群. 各位朋友大家好,非常荣幸和大家聊一聊用 Python Pandas 处理 Ex ...

  5. python 批量读取xlsx并合并_python合并多个excel表格数据-python如何读取多个excel合并到一个excel中...

    python如何读取多个excel合并到一个excel中 思路 利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文 ...

  6. 使用python将数据导出excel表格

      python可用于数据分析,有时候获得了数据需要导出以作其他作用.本文就介绍python导出excel表格的方法.   导出excel表格,python提供了两个库:xlwt,xlrd.本文只讨论 ...

  7. python 生成excel_python 数据生成excel导出(xlwt,wlsxwrite)代码实例

    这篇文章主要介绍了python 数据生成excel导出(xlwt,wlsxwrite)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 话不多 ...

  8. 如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件?

    如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件? 1.问题描述 2.解决过程 2.1 问题分析: 2.2 解决思路 3.运行结果 1.问题描述 最近在处理一堆工 ...

  9. 小猪的Python学习之旅 —— 14.项目实战:抓取豆瓣音乐Top 250数据存到Excel中

    小猪的Python学习之旅 -- 14.项目实战:抓取豆瓣音乐Top 250数据存到Excel中 标签:Python 一句话概括本文: 利用Excel存储爬到的抓取豆瓣音乐Top 250数据信息,还有 ...

  10. python数据可视化开发(2):pandas读取Excel的数据格式处理(数据读取、指定列数据、DataFrame转json、数学运算、透视表运算输出)

    系列文章目录 python开发低代码数据可视化大屏:pandas.read_excel读取表格 python实现直接读取excle数据实现的百度地图标注 python数据可视化开发(1):Matplo ...

最新文章

  1. /usr/bin/install: cannot create regular file ‘/usr/local/lib/libpcre.so.1.2.13‘: Permission denied
  2. 文巾解题 167. 两数之和 II - 输入有序数组
  3. theme vscode 护眼_VS code 豆沙绿护眼主题
  4. diesel fuel
  5. cephfs java api_Kubernetes使用cephfs作为后端存储
  6. 大白话5分钟带你走进人工智能 - 第二十一节 牛顿法和L-BFGS求函数最优解
  7. innobackupex备份工具
  8. linux c++应用程序内存高或者占用CPU高的解决方案_20161213
  9. 第十一节:Springboot整合log4j2日志
  10. html5 2d绘图,HTML5 canvas绘图
  11. Spark算子:RDD行动Action操作(2)–take、top、takeOrdered
  12. hbase shell删除一行_HBase安装phoenix实战shell操作
  13. 主力吸筹猛攻指标源码_成功率90%以上【主力吸筹+买点提示+使用方法】通达信指标公式源码...
  14. 3个国内最大的黑客学习网站
  15. 微型计算机要与局域网连接必须安装的硬件,计算机与局域网连接需要什么硬件...
  16. Activity生命周期走向分析
  17. 动物识别 羊群识别 牛识别 马识别 yolo动物识别 鸟类识别 狗识别 猫狗分类
  18. matlab分段函数的表达_使用matlab表示“段数不确定”的分段函数
  19. yolov7基于python 的onnx推理
  20. 启发式算法的基础定义与了解

热门文章

  1. HTML(二):表格元素
  2. 安卓Design包下的TextInputLayout和FloatingActionButton的简单使用
  3. Ubuntu下配置和编译cpp-ethereum客户端
  4. RecyclerView android:layout_width=match_parent无效
  5. C语言如何根据数据类型来处理不同的数据?
  6. jquery中一些容易忽略的方法
  7. Cygwin编译cef
  8. 在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行
  9. MultiBinding的StringFormat参数问题
  10. 【bzoj4318】OSU! 期望dp