python处理excel大数据-当Excel遇到大数据问题,是时候用Python来拯救了
与从事分析工作的人交谈,他们会告诉你他们对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来拯救了相关推荐
- Python实训day12am【网络爬虫大作业简略解析:动态生成html页面、数据写入Excel】
Python实训-15天-博客汇总表 目录 1.HTML页面设计 2.生成每个城市的HTML页面 2.1.HTML页面代码(weatherTemplate.html) 2.2.实例代码-动态生成htm ...
- python处理3000个excel-Python处理Excel数据的坑,一文让你不用重复犯错
前言 本号之前已经分享过关于如何使用 Python 中的数据处理分析包 pandas 处理 Excel 的数据,本文继续分享一个小案例,此案例源于上周末帮朋友做的一个需求,并且是以 vba 编写解决, ...
- python数据导出excel_python 数据生成excel导出(xlwt,wlsxwrite)代码实例
这篇文章主要介绍了python 数据生成excel导出(xlwt,wlsxwrite)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 话不多 ...
- csv 20位数据 如何打开可以预览完整数字_干货Python Pandas 做数据分析之玩转 Excel 报表分析...
本篇文章选自作者在 GitChat 的分享,若有什么问题,可在公众号回复「小助手」添加小助手微信,邀请你进入技术交流群. 各位朋友大家好,非常荣幸和大家聊一聊用 Python Pandas 处理 Ex ...
- python 批量读取xlsx并合并_python合并多个excel表格数据-python如何读取多个excel合并到一个excel中...
python如何读取多个excel合并到一个excel中 思路 利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文 ...
- 使用python将数据导出excel表格
python可用于数据分析,有时候获得了数据需要导出以作其他作用.本文就介绍python导出excel表格的方法. 导出excel表格,python提供了两个库:xlwt,xlrd.本文只讨论 ...
- python 生成excel_python 数据生成excel导出(xlwt,wlsxwrite)代码实例
这篇文章主要介绍了python 数据生成excel导出(xlwt,wlsxwrite)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 话不多 ...
- 如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件?
如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件? 1.问题描述 2.解决过程 2.1 问题分析: 2.2 解决思路 3.运行结果 1.问题描述 最近在处理一堆工 ...
- 小猪的Python学习之旅 —— 14.项目实战:抓取豆瓣音乐Top 250数据存到Excel中
小猪的Python学习之旅 -- 14.项目实战:抓取豆瓣音乐Top 250数据存到Excel中 标签:Python 一句话概括本文: 利用Excel存储爬到的抓取豆瓣音乐Top 250数据信息,还有 ...
- python数据可视化开发(2):pandas读取Excel的数据格式处理(数据读取、指定列数据、DataFrame转json、数学运算、透视表运算输出)
系列文章目录 python开发低代码数据可视化大屏:pandas.read_excel读取表格 python实现直接读取excle数据实现的百度地图标注 python数据可视化开发(1):Matplo ...
最新文章
- /usr/bin/install: cannot create regular file ‘/usr/local/lib/libpcre.so.1.2.13‘: Permission denied
- 文巾解题 167. 两数之和 II - 输入有序数组
- theme vscode 护眼_VS code 豆沙绿护眼主题
- diesel fuel
- cephfs java api_Kubernetes使用cephfs作为后端存储
- 大白话5分钟带你走进人工智能 - 第二十一节 牛顿法和L-BFGS求函数最优解
- innobackupex备份工具
- linux c++应用程序内存高或者占用CPU高的解决方案_20161213
- 第十一节:Springboot整合log4j2日志
- html5 2d绘图,HTML5 canvas绘图
- Spark算子:RDD行动Action操作(2)–take、top、takeOrdered
- hbase shell删除一行_HBase安装phoenix实战shell操作
- 主力吸筹猛攻指标源码_成功率90%以上【主力吸筹+买点提示+使用方法】通达信指标公式源码...
- 3个国内最大的黑客学习网站
- 微型计算机要与局域网连接必须安装的硬件,计算机与局域网连接需要什么硬件...
- Activity生命周期走向分析
- 动物识别 羊群识别 牛识别 马识别 yolo动物识别 鸟类识别 狗识别 猫狗分类
- matlab分段函数的表达_使用matlab表示“段数不确定”的分段函数
- yolov7基于python 的onnx推理
- 启发式算法的基础定义与了解
热门文章
- HTML(二):表格元素
- 安卓Design包下的TextInputLayout和FloatingActionButton的简单使用
- Ubuntu下配置和编译cpp-ethereum客户端
- RecyclerView android:layout_width=match_parent无效
- C语言如何根据数据类型来处理不同的数据?
- jquery中一些容易忽略的方法
- Cygwin编译cef
- 在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行
- MultiBinding的StringFormat参数问题
- 【bzoj4318】OSU! 期望dp