python - Python 生成合成数据
问题描述
Python版本:2.7
将创建一个合成数据文件,该文件可以包含 1000 万到 10 亿条记录 (CSV)。但是,必须满足某些条件。首先是有前缀的对象(下面的例子),这些对象也有一定数量的元素,不能超过。
这意味着(对象:'time',前缀:'ti',元素数:2)-> 元素数,例如 1 和 0。记录可能如下所示:'ti_1 和 ti_2'。有几个对象具有不同数量的元素,并且所有对象应该相互连接到一个用逗号分隔的记录。因此,我们将拥有一条记录,依此类推,直到例如 1000 万条记录已满。但是,每条记录必须是唯一的。
我写了一个小程序,但数据是多余的。
class SyntheticData(object):
# Prefix and number element
columns = [
('fo_', 20),
('dc_', 48373),
('vt_', 150),
('gb_', 24289),
('le_', 3393),
('br_', 3),
('ct_', 444),
('sr_', 175),
('mk_', 32103),
('pr_', 21675),
('tm_', 52),
('ou_', 170066),
('pr_', 400),
('lc_', 70),
('pe_', 2),
('nc_', 3370),
('sg_', 119907),
('fu_', 400),
('rt_', 1596),
('va_', 1)
]
column_separator = ';'
number_of_columns = len(columns)
def create_facts_data(self):
number_of_rows = 2
filename = 'factdata.csv'
f = open(filename, 'w')
# header = self.column_separator.join(self.columns[col][0] for col in range(self.number_of_columns)) + '\n'
# f.write(header)
for row_number in xrange(number_of_rows):
row = ''
for column_index in range(self.number_of_columns - 1):
row += self.columns[column_index][1]
row += str(((row_number) % self.columns[column_index][2]) + 1)
row += self.column_separator
row += str(1)
row += '\n'
f.write(row)
f.close()
笔记:
只能使用python2.7,不能使用库。
解决方案
推荐阅读
- javascript - TypeError:无法读取 TypeScript 中未定义的属性“currentQuestions”
- python - 如何限制 scipy.stats.norm.pdf 的绘图值
- html - 如何让 'dl' 内容自动换行,就像表格 'td' 换行?
- android - EnqueueWork 不会在 Oreo 及更高版本上立即启动
- .net-core - EF 核心中迁移的 .designer 文件未与 Visual Studio 中的 .cs 文件关联
- python - 当您在函数中传递 names_list 的每个值时,如何编写一个循环,其中输出列表应该是一个组合列表(删除重复项)
- javascript - 在某些链接上不做索引不关注
- mongodb - 猫鼬模式中的对象数组问题
- r - 从 RFID 数据集中删除重复记录的行
- python - 如何搜索具有不同搜索数据的行(一些给定,一些没有)