好不容易搜集到所需的大量资料,经过一连串的资料清理、格式化、排序与筛选等前置操作,为了后续的应用及分析,想必都会写入资料库中来留存,Pandas套件当然也提供了相关的 *** (Method),让开发人员除了可以将Pandas DataFrame中的资料存入资料库外,相对的,也能够透过SQL语法读取资料库中的资料。
本文就以Kaggle网站的2021年富比士亿万富翁资料集(Billionaire.csv)为例,模拟如何将Pandas DataFrame中的资料存入SQLite资料库,以及透过自订SQL语法来读取资料库的资料。重点包含:
建立SQLite资料库与资料表
Pandas DataFrame存入SQLite资料库
Pandas DataFrame读取SQLite资料库
一、建立SQLite资料库与资料表
SQLite是一个免费的轻量型关联式资料库,相较于其它大型的企业级资料库,无需伺服端的安装,就可以在用户端直接使用,对于小型的应用程式非常适合。
除此之外,Python也内建了SQLite模组(Module),在专案中直接引用即可,如下范例:
而Pandas套件则需利用以下指令安装:
才能够在专案中进行引用,如下范例:
接着,就可以通过Pandas套件的read_csv() *** (Method),来读取下载下来的资料集了,如下范例:
执行结果
其中,包含了Name(姓名)、NetWorth(净值)、Country(国家)、收入来源(Source)及排名(Rank)栏位。而要将Pandas DataFrame中的资料存入SQLite资料库,就需要先建立资料库与资料表,这时候利用sqlite3模组(Module)即可达成,如下范例:
以上的动作说明如下:
connect()-同时建立资料库与连线
cursor()-建立资料库操作指标
execute()-执行新增资料表的SQL指令
commit()-确认完成
而要检查是否建立成功,可以下载DB Browser for SQLite工具,安装完成开启后如下图:
点击「打开资料库」,选择刚刚所建立的SQLite资料库档(billionaire.db),就可以看到其中的资料表(Billionaire),如下图:
二、Pandas DataFrame存入SQLite资料库
有了资料库与资料表后,利用Pandas DataFrame的to_sql() *** (Method),就能够将资料写入SQLite资料库,如下范例:
以上的Pandas DataFrame的to_sql() *** (Method)包含4个关键字参数(Keyword Argument),分别为「写入的资料表名称」、「连线」、「资料表已存在该如何操作」及「是否写入Pandas DataFrame索引值」,而其中的「if_exists='append'」意思就是资料表已存在,则将资料直接写入。
开启DB Browser for SQLite工具,选择Billionaire资料表后,切换到Browse Data(浏览资料)页签,即可看到Pandas DataFrame中的资料成功写入,如下图:
三、Pandas DataFrame读取SQLite资料库
相反的,Pandas DataFrame想要读取SQLite资料库中的资料,Pandas套件也提供了read_sql() *** (Method),透过传入SQL指令来进行捞取,如下范例:
执行结果
以上范例,Pandas DataFrame就是透过SQL指令,读取资料库中国家(Country)栏位为美国(United States)的资料。
此外,这也提供了开发人员另一个资料筛选的方式,也就是利用SQL指令从资料库筛选出所需的资料后,再读入Pandas DataFrame中来进行操作分析。
四、小结
在实作资料分析的过程中,除了档案的读写外,资料库的读写也是非常重要的技巧之一,Pandas套件也提供了很好的支援,本文就以Pandas读写SQLite资料库为例,来示范其中的to_sql()及read_sql() *** (Method)应用,如果大家在分析实务上有与资料库的结合需求,希望本文能够帮助到你。
#python实战#
想了解更多精彩内容,快来关注四川人在香港
Atlas VPN的新研究显示,全球76%的公司在过去一年中遭遇过服务停机。原因包括系统崩溃、人为错误和网络攻击是造成停机的主要原因。此外,许多IT经理对越来越多的政治驱动的网络攻击感到担忧。 系统崩溃被认为是公司停机的首要原因,52%的人不得不处理这个问题。42.3%的IT经理认为人为错误是导致公...
针对黑客组织 Lapsus$ 的专项打击活动仍在继续,就在一周前逮捕 7 名青少年之后,英国警方指控 2 名青少年犯有多项网络罪行。目前这 2 人仍处于拘留中,并将于本周五晚些时候在海布里角地方法院出庭。 在周五的一份声明中,伦敦市警察局探长迈克尔·奥沙利文表示这两名年龄分别为 16 岁和 17...
近期,QNAP发布了几项安全公告,其中一项针对严重的安全问题,该问题允许在易受攻击的QVR系统上远程执行任意命令,该公司的视频监控解决方案托管在NAS设备上。QVR IP视频监控系统支持多重频道和跨平台视频解码,专为监控家庭和办公环境而设计。该漏洞编号为CVE-2022-27588,严重程度得分为...
在一个不明身份的人劫持了他们的Tor支付门户网站和数据泄露博客后,REvil勒索软件可能再次关闭。 17日早些时候, Tor网站下线了,一名与REvil勒索软件有关的威胁行为者在XSS黑客论坛上发帖称有人劫持了REvil团伙的域名。 这个帖子最先是被Recorded Future的Dmitry Sm...
时间已正式迈入 2022 年,分析公司 Chainalysis 表示在过去一年中与加密货币有关的犯罪达到了历史最高水平,非法地址获得了惊人的 140 亿美元。收到的绝大部分资金是通过诈骗、盗窃和暗网市场获得的,而另一个不断增长的被盗资金来源则是赎金。 非法资金从 2020 年的 78 亿美...
加州大学圣迭戈分校的一支计算机科学家团队,刚刚携手 Brave Software 开发了一款新工具,旨在加强用户在网上冲浪时的隐私数据保护体验。这款名为 SugarCoat 的工具,将目光瞄向了可能损害用户隐私的脚本内容 —— 比如追踪用户的 Web 浏览历史。另一方面,对于内嵌相关脚本的网站来说,...