好不容易搜集到所需的大量资料,经过一连串的资料清理、格式化、排序与筛选等前置操作,为了后续的应用及分析,想必都会写入资料库中来留存,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实战#
想了解更多精彩内容,快来关注四川人在香港
受俄乌冲突影响,俄罗斯 Sber 银行建议其客户暂时停止安装任何应用程序的软件更新,因为担心这些软件可能包含专门针对俄罗斯用户的恶意代码,被一些人称为“抗议软件”(protestware)。 Sber 的公告写道:“目前,挑衅性媒体内容被引入免费分发的软件的情况已经变得更加频繁。此外,各种内容和...
根据医疗网络安全公司Cynerio的一份新报告,医院中使用的互联网连接设备有一半以上存在漏洞,可能会危及病人安全、机密数据或设备的可用性。 该报告分析了全球300多家医院和医疗机构的1000多万台设备的数据,该公司通过连接到设备上的连接器收集这些数据,作为其安全平台的一部分。 医院里最常见的互联网...
7月24日爆出的Clubhouse漏洞和Facebook用户资料的数据被用来编制成一个38亿条的巨量数据库,暗网售价10万美元,不仅如此,如果买家资金紧张,卖家还愿意分割它。CyberNews研究团队发现了一个9月4日的黑客论坛帖子,该帖子提供了这些数据。发帖人称,这些记录包括姓名、电话号码、Clu...
近日,欧洲刑警组织发布了其首份深度伪造研究报告–《面对现实?执法和深度伪造的挑战》(Facing reality? Law enforcement and the challenge of deepfakes),这是欧洲刑警组织创新实验室就新兴技术的风险、威胁和机遇等方面技术发展研究形成的报告。该报...
Hackernews编译,转载请注明出处: 今年,借助一个叫做 Tardigrade 的恶意软件装载器,一个 APT攻击了 两家生物制造公司。 生物经济信息共享与分析中心(BIO-ISAC)发布了一份公告,其中指出,恶意软件正在整个行业中广泛传播,它们的目的可能是盗窃知识产权,保证持续性,并用勒索...
美国当地时间周六,黑客入侵了美国联邦调查局(FBI)的外部邮件系统。根据跟踪垃圾邮件和相关网络威胁的非营利组织Spamhaus Project提供的信息,黑客使用FBI的电邮账号发送了数万封电子邮件,就可能发生的网络攻击发出警告。 FBI表示,该局和美国网络安全与基础设施安全局“已经注意到今晨发生的...