好不容易搜集到所需的大量资料,经过一连串的资料清理、格式化、排序与筛选等前置操作,为了后续的应用及分析,想必都会写入资料库中来留存,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实战#
想了解更多精彩内容,快来关注四川人在香港
对于IT管理员和网络安全团队来说,勒索软件攻击是一场与时间赛跑的关键比赛,以检测和控制损害,同时抢救公司的数据资产的剩余部分。但是,当这种事件发生时,有多少反应时间呢?似乎不是很多。正如对10个候选勒索软件的测试所揭示的那样,一种名叫LockBit的勒索软件效率惊人,在四分钟内就加密了一台Windo...
BHI是一种影响大多数英特尔和Arm CPU的新型投机执行漏洞,它攻击分支全局历史而不是分支目标预测。不幸的是,这些公司以前对Spectre V2的缓解措施也无法保护BHI的威胁,尽管AMD处理器大多是免疫的。消息传出后,供应商应该很快就会发布安全补丁,而最新得Linux内核已经打了补丁。...
在 4 月 5 日的活动中,微软宣布了适用于 Windows 11 系统的新安全功能,从而在操作系统层面提供网络钓鱼保护。通过 Microsoft Defender SmartScreen,微软提供网络钓鱼的检测和保护,保护 Windows 11 设备免受恶意程序侵害。 在更新日志中,微软表示:...
一位研究人员将苹果公司的一个AirTags发送到德国一个神秘的”联邦机构”,以确定其真正的办公室,并帮助证明它确实是一个情报机构的一部分。苹果公司的AirTags已经在涉及追踪个人的案件中被用得有声有色,但现在一位德国研究人员在揭露政府机密时使用了一个。 活动家Lilith Wittmann声称,...
Hackernews 编译,转载请注明出处: ASUSTOR 网络附属存储(NAS)设备已经成为 Deadbolt 勒索软件的最新受害者,不到一个月前,类似的攻击受害者是QNAP 网络附加存储设备。 为了应对感染,该公司发布了固件更新(ADM 4.0.4.RQO2)来“解决相关...
就在我们了解到国家支持的黑客已经开始研究上周震惊网络安全界的Log4j漏洞问题时,其他研究人员发出了一个令人不安的发展信号。Log4j黑客,也被称为Log4Shell已经有一个补丁,已经可以部署到企业。但事实证明,这个补丁玩起了“套娃”:它解决原有问题的同时又产生新的安全问题,且可以被外部利用。因此...