用于生成模拟数据集作为pandas数据帧的实用程序

dfmock的Python项目详细描述


dfmock

Pithon3的Pandas数据框模拟程序。

为什么?

有时您只需要pandas数据类型中已经存在的模拟数据。有很多数据生成工具,但是大多数都会生成csv或者一些需要熊猫使用的csv;这为您的测试增加了一个有用的点。如果逻辑正确,但数据类型没有从csv中正确导入怎么办?因此dfmock的目标是在控制数据类型的地方生成模拟数据帧。

安装

使用pip

pip install dfmock

您还可以获取源here

API

使用起来很简单。 导入到模块中,选择列名和数据类型,设置列数,并生成框架。 从dfmock导入dfmock

columns = { "hamburger":"string",
            "hot_dog":"integer",
            "shoelace":"timedelta"
          }
dfmock = DFMock(count=100, cols=columns)
dfmock.generate_dataframe()

my_mocked_dataframe = dfmock.dataframe

支持的熊猫数据类型:

PANDAS TYPEDICT VALUE
objectstring
int64int
float64float
boolbool
datetime64datetime
timedeltatimedelta
categorycategory

因此,使用列“banana”(即int64)和列“rockstar”(即category类型)创建一个数据帧:

dfmock.cols = {"banana":"int","rockstar":"category"}

很简单。

增大到大小

有时需要将数据集设置为特定的内存大小,而不是行大小。grow_dataframe_to_size()允许您增大帧,直到它达到或超过给定的大小(以MB为单位)。 需要10MB的数据帧吗?

dfmock.generate_dataframe()
dfmock.size
## returns 0.2 MB

dfmock.grow_dataframe_to_size(10)
dfmock.size
## returns ~10 MB

分组

notetimedeltacategory数据类型当前不受支持。 有时,您需要一个列,可以在该列上使用给定的数据类型进行聚合。例如,您可能需要具有4个datetime值之一的1m行(可能表示4个观察报告时间戳?)。可以使用分组来完成此操作。 通过将dict作为数据类型值传递,并将分组列的参数作为键来声明分组列。像这样:

columns = {"amazing_grouped_column_with_3_values": { "option_count":3, "option_type":"string"}}

这将为您提供一个只有3个不同值和(几乎)相等分布的列。 如果需要控制分布,可以传递直方图参数。例如,如果您想要一个具有4个datetime值的数据集,并且想要50%的记录使用一个值,30%的记录使用另一个值,而其余的记录使用20%的值,则此选项非常有用。您可以这样删除此分发版:

columns = {"super_cool_grouped_column_with_histogram": {"option_count":4, "option_type":"datetime","histogram":(5,3,2,2,)}}

传递直方图的整数需要用与选项count相同的值(即,如果option_count=5,则需要5个值)加起来最多10个。对于直方图,此caps选项当前计数为10。 您所需的行数也必须可被10整除-这使数学简单。

贡献

我们欢迎拉要求!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在一个问题被连续正确回答三次/并添加差异后,我如何将程序循环回开始   Java中未实例化的匿名类   java如何在Android中录制视频,只允许横向模式和最长时间录制时间   java从另一个活动发送实时消息   多线程java线程和互斥   java禁用Spring安全日志   JAVA伊奥。StreamCorruptedException:在与子级和父级ProcessBuilder通信时写入子级中的标准输出时,流头无效   使用Java(HttpURLConnection)对Restheart进行身份验证(对于Mongodb)   java如何解决Jenkins中的SAXParseException?   java为什么我需要mockito来测试Spring应用程序?   计算sin-cos和tan时缺乏精度(java)   java Hibernate。不同项目中相同一对一映射的不同行为   java图像滑块:如何使用JavaFX将图像放在另一个图像上   java Mockito在使用when时抛出NotAMockException   http Java servlet发送回响应