【发布时间】:2022-10-15 04:23:13
【问题描述】:
我想使用 Synthetic Data Vault (SDV) 库的合成数据生成方法(参考https://sdv.dev/SDV/index.html),但我不能。我认为我的问题是如何以“.fit()”方法所需的输入格式准备数据。
演示代码如下:
from sdv import SDV, load_demo
metadata, tables = load_demo(metadata=True)
SDV().fit(metadata, tables)
sampled = sdv.sample_all()
对象“元数据”是:
type(metadata) = <class 'sdv.metadata.dataset.Metadata'>
对象“表”是 3 个数据框的字典:
type(tables) = <class 'dict'>
type(tables['users']) = <class 'pandas.core.frame.DataFrame'>
我的案例研究从 Pandas 数据框开始:
df_input = pd.read_csv("file.csv")
所以我可以将“表”对象实例化为字典:
table_input={'input':df_input}
但我不确定如何实例化“元数据”对象。我努力了:
from sdv import Table
metadata_input=Table(name='input',
field_names =df_input.columns.tolist(),
field_types = {'ID':'int64',
'Type':'object',
'Air temperature [K]':'float64',
'Rotational speed [rpm]':'int64',
},
primary_key = 'ID')
但这不起作用:
sdv.fit(metadata=metadata_input,
tables= table_input)
错误是:
TypeError: 'Table' object is not subscriptable
最后,我应该如何创建元数据对象?
【问题讨论】:
标签: python pandas data-generation synthetic sdv