好不容易搜集到所需的大量资料,经过一连串的资料清理、格式化、排序与筛选等前置操作,为了后续的应用及分析,想必都会写入资料库中来留存,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实战#
想了解更多精彩内容,快来关注四川人在香港
由于自称为 Lapsus$ 的组织泄露了与英伟达黑客攻击相关的数据,被盗的代码签名证书被用于远程访问未受保护的 PC,其他情况下则被用来部署恶意软件。 根据 Techpowerup 的报道,这些证书被用于“开发一种新型恶意软件”,BleepingComputer 将 Cobalt Strike...
对于IT管理员和网络安全团队来说,勒索软件攻击是一场与时间赛跑的关键比赛,以检测和控制损害,同时抢救公司的数据资产的剩余部分。但是,当这种事件发生时,有多少反应时间呢?似乎不是很多。正如对10个候选勒索软件的测试所揭示的那样,一种名叫LockBit的勒索软件效率惊人,在四分钟内就加密了一台Windo...
现在,不少新报告指出了跟俄罗斯对乌克兰采取的军事行动直接或间接有关的黑客行动。许多专家预测,俄罗斯将在乌克兰发动重大网络攻击,如关闭该国的电网。虽然大规模的行动还没有实现,但关于小规模攻击的报告已经开始出现。 当地时间周一,Google表示,它发现了针对乌克兰官员和波兰军队的广泛的网...
Hackernews 编译,转载请注明出处: SonicWall 发布了安全更新,其中包含一个跨多个防火墙设备的关键漏洞,未经身份验证的远程攻击者可以将其武器化,以执行任意代码并导致拒绝服务(DoS)情况。 根据CVE-2022-22274 (CVSS 得分: 9.4)的跟踪记录,...
在最新活动中,恶意软件 Magniber 利用虚假的 Windows 10 更新实现传播。这款恶意软件非常善于紧跟最新时事进行传播,在 2021 年使用 PrintNightmare 漏洞来感染受害者;在 2022 年 1 月,它再次通过 Edge 和 Chrome 浏览器进行传播。 援引科...
据调查,在近半年的时间里,英国国家卫生系统(NHS)的100多名员工的工作电子邮件帐户被多次用于网络钓鱼活动,其中一些活动旨在窃取Microsoft登录信息。在劫持合法的NHS电子邮件帐户后,这些攻击者于去年10月开始使用它们,并至少在今年4月之前将其继续用于网络钓鱼活动。据电子邮件安全INKY的...