你知道Python有内置数据库吗?Python内置库SQlite3使用指南( 二 )


让我们先来定义一个数据帧 。
df_skill = pd.DataFrame({'user_id': [1,1,2,2,3,3,3],'skill': ['Network Security', 'Algorithm Development', 'Network Security', 'JAVA', 'Python', 'Data Science', 'machine Learning']})

你知道Python有内置数据库吗?Python内置库SQlite3使用指南

文章插图
 
然后,我们可以简单地调用数据帧的to_sql()方法将其保存到数据库中 。
df_skill.to_sql('SKILL', con)就这样我们甚至不需要预先创建表,列的数据类型和长度都会被推断出来 。当然,如果你想的话,你也可以先定义 。
然后,假设我们要将表 USER 和 SKILL 连接在一起,并将结果读入Pandas数据框 。
df = pd.read_sql('''SELECT s.user_id, u.name, u.age, s.skillFROM USER u LEFT JOIN SKILL s ON u.id = s.user_id''', con)
你知道Python有内置数据库吗?Python内置库SQlite3使用指南

文章插图
 
是不是很厉害?让我们把结果写到一个名为USER_SKILL的新表中 。
df.to_sql('USER_SKILL', con)我们也可以用SQL客户端来检索表 。
你知道Python有内置数据库吗?Python内置库SQlite3使用指南

文章插图
 
总结实际上,Python中还隐藏着很多惊喜 。而且这些惊喜并不没有隐藏起来,只是Python有太多现成可以直接使用的特性了,这就导致很多人无法发现这些特性 。
在本文中,我介绍了如何使用 Python 内置库 sqlite3 在 SQLite 数据库中创建和操作表 。它也支持对表格进行更新和删除操作,建议大家在看完这篇文章之后自己尝试一下 。
最重要的是,我们可以轻松地将表从 SQLite 数据库读入 Pandas 数据帧,反之亦然 。这使我们能够更容易地与我们的轻量级关系数据库进行交互 。
你可能会注意到 SQLite 没有进行身份验证,这也是它刻意设计的行为,因为需要轻量化 。
一起去探索Python中更多令人惊讶的特性吧!
--END--
作者:Christopher Tao
原文链接:https://towardsdatascience.com/do-you-know-python-has-a-built-in-database-d553989c87bd
编译:未艾信息(www.weainfo.net)
喜欢本文的同学记得转发+点赞~
更多内容,欢迎大家关注我们的公众号:为AI呐喊(weainahan)




推荐阅读