用这个简单的工具生成带有多表的大型数据库,让你更好地用 SQL 研究数据科学。
创新互联建站专注于企业营销型网站建设、网站重做改版、武邑网站定制设计、自适应品牌网站建设、H5高端网站建设、商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为武邑等各大城市提供网站开发制作服务。
在研究数据科学的过程中,最麻烦的往往不是算法或者技术,而是如何获取到一批原始数据。尽管网上有很多真实优质的数据集可以用于机器学习,然而在学习 SQL 时却不是如此。
对于数据科学来说,熟悉 SQL 的重要性不亚于了解 Python 或 R 编程。如果想收集诸如姓名、年龄、信用卡信息、地址这些信息用于机器学习任务,在 Kaggle 上查找专门的数据集比使用足够大的真实数据库要容易得多。
如果有一个简单的工具或库来帮助你生成一个大型数据库,表里还存放着大量你需要的数据,岂不美哉?
不仅仅是数据科学的入门者,即使是经验丰富的软件测试人员也会需要这样一个简单的工具,只需编写几行代码,就可以通过随机(但是是假随机)生成任意数量但有意义的数据集。
因此,我要推荐这个名为 pydbgen 的轻量级 Python 库。在后文中,我会简要说明这个库的相关内容,你也可以阅读它的文档详细了解更多信息。
pydbgen
是一个轻量的纯 Python 库,它可以用于生成随机但有意义的数据记录(包括姓名、地址、信用卡号、日期、时间、公司名称、职位、车牌号等等),存放在 Pandas Dataframe 对象中,并保存到 SQLite 数据库或 Excel 文件。
目前 1.0.5 版本的 pydbgen 托管在 PyPI(Python 包索引存储库Python Package Index repository)上,并且对 Faker 有依赖关系。安装 pydbgen 只需要执行命令:
pip install pydbgen
已经在 Python 3.6 环境下测试安装成功,但在 Python 2 环境下无法正常安装。
在使用 pydbgen
之前,首先要初始化 pydb
对象。
import pydbgen
from pydbgen import pydbgen
myDB=pydbgen.pydb()
随后就可以调用 pydb
对象公开的各种内部函数了。可以按照下面的例子,输出随机的美国城市和车牌号码:
myDB.city_real()
>> 'Otterville'
for _ in range(10):
print(myDB.license_plate())
>> 8NVX937
6YZH485
XBY-564
SCG-2185
XMR-158
6OZZ231
CJN-850
SBL-4272
TPY-658
SZL-0934
另外,如果你输入的是 city()
而不是 city_real()
,返回的将会是虚构的城市名。
print(myDB.gen_data_series(num=8,data_type='city'))
>>
New Michelle
Robinborough
Leebury
Kaylatown
Hamiltonfort
Lake Christopher
Hannahstad
West Adamborough
你可以指定生成数据的数量和种类,但需要注意的是,返回结果均为字符串或文本类型。
testdf=myDB.gen_dataframe(5,['name','city','phone','date'])
testdf
最终产生的 Dataframe 类似下图所示。
你也可以指定生成数据的数量和种类,而返回结果是数据库中的文本或者变长字符串类型。在生成过程中,你可以指定对应的数据库文件名和表名。
myDB.gen_table(db_file='Testdb.DB',table_name='People',
fields=['name','city','street_address','email'])
上面的例子种生成了一个能被 MySQL 和 SQLite 支持的 .db
文件。下图则显示了这个文件中的数据表在 SQLite 可视化客户端中打开的画面。
和上面的其它示例类似,下面的代码可以生成一个具有随机数据的 Excel 文件。值得一提的是,通过将 phone_simple
参数设为 False
,可以生成较长较复杂的电话号码。如果你想要提高自己在数据提取方面的能力,不妨尝试一下这个功能。
myDB.gen_excel(num=20,fields=['name','phone','time','country'],
phone_simple=False,filename='TestExcel.xlsx')
最终的结果类似下图所示:
pydbgen
内置了一个 realistic_email
方法,它基于种子来生成随机的电子邮箱地址。如果你不想在网络上使用真实的电子邮箱地址时,这个功能可以派上用场。
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.Tirtha60@gmail.com
TirthaSarkar@zoho.com
Sarkar.Tirtha@protonmail.com
Tirtha.S@comcast.net
目前的版本中并不***。如果你发现了 pydbgen 的 bug 导致它在运行期间发生崩溃,请向我反馈。如果你打算对这个项目贡献代码,也随时欢迎你。当然现在也还有很多改进的方向:
一切皆有可能!
当前文章:pydbgen:一个数据库随机生成器
网页地址:http://www.shufengxianlan.com/qtweb/news26/34676.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联