教程|一文上手python库pydbgen(附代码、安装地址)
写在前面
SQL或数据科学领域的初学者通常会很难轻易访问大型示例数据库文件(.DB或.sqlite)来练习SQL命令。那么用一个简单的工具或库来生成一个包含多个表的,并且用自己选择的数据填充的大型数据库会不会很好?
当你开始学习和实践数据科学时,通常最担心的不是算法或技术,而是原始数据的可用性。幸运的是,网上有许多高质量的真实数据库可用于尝试学习热门机器学习技巧。但是,从我个人的经验来看从个人经验来讲,我发现学习SQL并不是这样。现在,对于数据科学领域来说,掌握SQL的基础知识与知道如何使用Python或R编写代码几乎同等重要。但是,访问存有真实数据的足够大的数据库(例如名称,年龄,信用卡,SSN,地址,生日等)并不像访问Kaggle上的玩具数据集一样常见,这些数据集是为机器学习的任务专门设计或策划的。
用一个简单的工具或库来生成一个包含多个表的,并且用自己选择的数据填充的大型数据库会不会很好?
除了数据科学领域的初学者,即使经验丰富的软件测试人员也可能发现使用简单的工具很有用,只需几行代码,他们就可以任意生成包含随机(假)而且有意义的条目的大型数据集。
我很高兴能介绍一个轻量级的Python库,即pydbgen。你可以在这里阅读了解关于软件包的详细信息。(链接:http://pydbgen.readthedocs. Io /en /latest/#)我将在短文中回顾类似的细节。
本文授权转载自“数据派THU”(ID:datapi)
原文标题:Introducing pydbgen: A random dataframe/database table generator
作者:Tirthajyoti Sarkar
翻译:王婷
校对:李海明
pydbgen究竟是什么?
它是一个轻量级的纯python库,用于生成随机有用的条目(例如名称,地址,信用卡号码,日期,时间,公司名称,职位名称,车牌号码等),并将其保存在Pandas数据框对象中,或者作为数据库文件中的SQLite表格或MS Excel文件。
如何安装?
它(当前版本为1.0.5)是托管在PyPI(Python Package Index repository)上的。请记住你需要提前安装Faker(链接:http://faker.readthedocs.io/en/latest/index.html)来完成这项工作。所以,只需键入:
pipinstall
pydbgen请注意,它目前仅在Python 3.6上进行了测试。它不适用于Python 2的安装。
如何使用?
你必须创建一个pydb对象才能开始使用它。
import
pydbgenfrom
pydbgenimport
pydbgenmyDB=pydbgen.pydb()
然后,你可以访问由pydbobject公开的各种内部函数。例如,要打印随机的美国城市:
myDB.city_real()>>
"Otterville"
for
_
in
range(10
):print(myDB.license_plate())
>>
8
NVX9376
YZH485XBY-
564
SCG-
2185
XMR-
158
6
OZZ231CJN-
850
SBL-
4272
TPY-
658
SZL-0934
如果你只是写"city"而不是"city_real",你会得到虚构的城市名称
8
,data_type="city"
))>>
New
MichelleRobinborough
Leebury
Kaylatown
Hamiltonfort
Lake Christopher
Hannahstad
West Adamborough
如何生成一个带有随机条目的Pandas数据框?
你可以选择要生成的数量和数据类型。请注意,所有内容都以string/texts形式返回。
testdf=myDB.gen_dataframe(5
,["name"
,"city"
,"phone"
,"date"
])testdf
如何生成数据库表?
你可以选择要生成数据的数量和类型。请注意,所有内容都以数据库的text/ VARCHAR所有数据类型返回所有数据都以text/ VARCHAR类型返回数据库。你可以指定数据库文件名和表名。
myDB
.gen_table
(db_file="Testdb.DB"
,table_name="People"
,fields=[
"name"
,"city"
,"street_address"
,"email"
])这会生成一个可用于MySQL或SQLite数据库服务器的.DB文件。 生成的数据库表在SQLite数据库浏览器中打开。
如何生成Excel文件?
与上面类似,只需使用以下代码生成随机数据的Excel文件即可。 请注意,"simple_phone"集被设置为False,因此会生成复杂的长型电话号码。这样可以方便试验更多涉及数据提取的代码!
20
,fields=["name"
,"phone"
,"time"
,"country"
],phone_simple=
False
,filename="TestExcel.xlsx"
)用一种很酷的方法生成随机emailIDs以便废物利用?
pydbgen中一种内置方法是realistic_email,它从种子名称中生成随机电子邮件IDs。你能想到在网络上使用这个吗?你不想给出真实的电子邮件ID,但是可以给出一个相似的?
for
_
in
range(10
):print(myDB.realistic_email(
"Tirtha Sarkar"
))>>
Tirtha_Sarkar@gmail.com
Sarkar.Tirtha@outlook.com
Tirtha_S48@verizon.com
Tirtha_Sarkar62@yahoo.com
Tirtha.S46@yandex.com
Tirtha.S@att.com
Sarkar.Tirtha6
0
@gmail.comTirthaSarkar@zoho.com
Sarkar.Tirtha@protonmail.com
Tirtha.S@comcast.net
未来的改进和用户贡献
当前版本是1.0.5,可能包含许多bug。如果你在执行过程中注意到任何bug或者你的程序崩溃(除了你的错误输入),请告诉我。另外,如果你有一个很酷的想法来为源代码做贡献,Github repo(链接:http://github.com/tirthajyoti/pydbgen)将为你打开。有一些问题很容易想到:
◆ 我们可以将机器学习/统计建模和这个随机数据生成器集成吗?
◆
可视化功能可以被添加到发生器中吗?所有的可能性是无穷无尽且令人激动万分的……
如果你有任何问题或想法可以分享,请通过tirthajyoti[AT]gmail.com联系作者。你也可以在Python,R或MATLAB以及机器学习资源中查找作者的GitHub存储库(链接:http://github.com/tirthajyoti?tab=repositories)以获取其他有趣的代码片段。 如果你像我一样热衷于机器学习/数据科学,请随时在LinkedIn上添加我(链接:http://www.linkedin.com/in/tirthajyoti-sarkar-2127aa7/)或在Twitter上关注我(链接:http://twitter.com/tirthajyotiS)。
原文链接:http://www.codementor.io/tirthajyotisarkar/introducing-pydbgen-a-random-dataframe-database-table-generator-hi6i65h46
- 金融委会议传递金融监管哪些新信号?一文带你看懂
- 《电子商务法》为何经过四审才出台?一文带你看懂
- “中字头”“国字头”工作组如何工作?一文看懂
- 汇总目录|别找了,你需要的excel教程全在这里!按时更新……
- excel函数避坑指南,建议收藏!【Excel教程】
- 为什么你的加班在老板眼里一文不值?因为宏表函数3秒就可以解决
- 5个让你工作效率飞升的常用必会Excel技巧【Excel教程】
- 今年净流入2197亿!一文看懂外资流入的秘密
- 在韩国卖断货的华夫饼机,小白上手,3分钟就做好
- 曾被高手们玩坏的Excel超级表【Excel教程】