pydbgen简介:随机数据库/数据库表生成器

pydbgen是一款轻量级Python库,用于生成含有随机但实用的条目(如姓名、地址、信用卡号等)的大数据集,并可保存为Pandas数据框、数据库文件或Excel文件。适用于数据科学初学者和软件测试人员。
摘要由CSDN通过智能技术生成

当您开始学习数据科学时,通常您最大的担心不是算法或技术,而是对原始数据的访问。 尽管网上有许多高质量的现实数据集可用于尝试出色的机器学习技术,但我发现在学习SQL时并非如此。

对于数据科学而言,对SQL的基本了解几乎与知道如何使用Python或R编写代码一样重要。但是,在Kaggle上查找玩具数据集要比访问具有真实数据的足够大的数据库(例如,姓名,年龄,信用卡,社会安全号码,地址,生日等),这些内容是专门为机器学习任务设计或策划的。

除了数据科学的初学者之外,即使是经验丰富的软件测试人员也可能会发现拥有一个简单的工具很有用,该工具只需用几行代码就可以生成具有随机(伪造)但有意义的条目的任意大数据集。

基于这个原因,我很高兴介绍一个名为pydbgen的轻量级Python库。 在本文中,我将简要分享有关该软件包的一些信息,您可以通过阅读docs了解更多信息。

什么是pydbgen?

Pydbgen是一个轻量级的纯Python库,用于生成随机有用的条目(例如,名称,地址,信用卡号,日期,时间,公司名称,职务,车牌号等)并将其保存在Pandas数据框对象中,作为数据库文件或Microsoft Excel文件中SQLite表。

如何安装pydbgen

当前版本(1.0.5)托管在PyPI(Python软件包索引存储库)上。 您需要安装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

结果数据帧如下图所示。

Pandas dataframe example

生成数据库表

您可以选择将生成多少数据类型。 所有内容都以数据库的text / VARCHAR数据类型返回。 您可以指定数据库文件名和表名。


   
   
myDB. gen_table ( db_file = 'Testdb.DB' , table_name = 'People' ,
fields = [ 'name' , 'city' , 'street_address' , 'email' ] )

这将生成一个.db文件,该文件可与MySQL或SQLite数据库服务器一起使用。 下图显示了在DB Browser中为SQLite打开的数据库表。

DB Browser for SQLite example

生成一个Excel文件

与上面的示例类似,以下代码将生成带有随机数据的Excel文件。 请注意, phone_simple设置为False,因此它可以生成复杂的长格式电话号码。 当您想尝试更多涉及的数据提取代码时,这可能会派上用场。


   
   
myDB. gen_excel ( num = 20 , fields = [ 'name' , 'phone' , 'time' , 'country' ] ,
phone_simple = False , filename = 'TestExcel.xlsx' )

生成的文件如下图所示:

Excel example

生成随机电子邮件ID以供报废使用

pydbgen中的内置方法是realistic_email ,它从种子名称生成随机的电子邮件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. Tirtha60 @ gmail. com
TirthaSarkar @ zoho. com
Sarkar. Tirtha @ protonmail. com
Tirtha. S @ comcast. net

未来的改进和用户贡献

当前版本中可能存在许多错误-如果您发现任何错误并且在执行过程中程序崩溃(除了由于输入错误而导致的崩溃),请告诉我。 另外,如果您有一个很棒的想法为源代码做贡献,那么GitHub存储库是开放的。 容易想到一些问题:

  • 我们可以将一些机器学习/统计模型与此随机数据生成器集成在一起吗?
  • 是否应将可视化功能添加到生成器?

可能性无穷而令人兴奋!

如果您有任何问题或想法要分享,请通过tirthajyoti [AT] gmail.com与我联系。 如果您像我一样对机器学习和数据科学充满热情,请在LinkedIn上添加我,在Twitter上关注我 。 另外,请查看我的GitHub存储库 ,以获取Python,R或MATLAB中的其他有趣代码段以及一些机器学习资源。


最初发表于《 走向数据科学》 根据CC BY-SA 4.0许可。

翻译自: https://opensource.com/article/18/11/pydbgen-random-database-table-generator

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值