具有可逆数据转换的存储库

rdt的Python项目详细描述


“Copulas”麻省理工学院从数据到人工智能实验室的开源项目。

可逆数据转换

这是一个python库,用于为数据科学库转换数据并保留转换,以便根据需要反转它们。

安装

使用pip

安装

安装rdt的最简单和推荐的方法是使用pip

pip install rdt

从源安装

您还可以克隆存储库并从源安装它

git clone git@github.com:HDI-Project/RDT.git
cd RDT
pip install -e .

用法

此库用于将所需的转换应用于单个表或整个数据集 同时,目标是得到完整的数字表作为输出。想要的 可以在列级别或数据集级别指定转换。例如,您可以 仅对选定列应用日期时间转换,或者可以指定 数据集中要进行该转换的DateTime列。

转换列

这个库的基类是basetransformer类。这个类提供方法来适应 转换数据并将其转换为新数据的方法 拟合变换器和一种反转变换并获取与原始数据相似的数据的方法 输入。每个transformer类都继承自basetransformer类,因此 这些方法。

变形金刚将列和该列的元数据作为输入。下面我们将 演示如何使用日期时间转换器转换和反转列。

首先,我们需要通过运行以下命令来解压缩存储库中包含的演示数据 shell上的命令:

tar -xvzf examples/data/airbnb.tar.gz -C examples/data/

然后,我们可以继续打开python解释器并加载数据

>>>fromrdt.transfomersimportget_col_info>>>demo_data='examples/data/airbnb/Airbnb_demo_meta.json'>>>column,column_metadata=get_col_info('users','date_account_created',demo_data)>>>column.head(5)02014-01-0112014-01-0122014-01-0132014-01-0142014-01-01Name:date_account_created,dtype:object>>>column_metadata{'name':'date_account_created','type':'datetime','format':'%Y-%m-%d','uniques':1634}

现在我们可以转换列。

>>>fromrdt.transformers.DTTransformerimportDTTransformer>>>transformer=DTTransformer()>>>transformed_data=transformer.fit_transform(column,column_metadata)>>>transformed_data.head(5)011.388531e+18111.388531e+18211.388531e+18311.388531e+18411.388531e+18

如果要反转转换并取回原始数据,可以运行 服从命令。

>>>reverse_transformed=transformer.reverse_transform(transformed_data,column_metadata)>>>reverse_transformed.head(5)date_account_createddate_account_created02014-01-0112014-01-0122014-01-0132014-01-0142014-01-01

转换表格

还可以使用hypertransformer类转换整个表。再说一次,我们可以从 正在加载数据。

>>>fromrdt.utilsimportget_table_dict>>>meta_file='examples/data/airbnb/Airbnb_demo_meta.json'>>>table_dict=get_table_dict(meta_file)>>>table,table_meta=table_dict['users']

现在您可以将所需变压器的列表传递到fit_transform_table函数中 改造整张桌子。

>>>fromrdt.hyper_transformerimportHyperTransformer>>>ht=HyperTransformer(meta_file)>>>tl=['DTTransformer','NumberTransformer','CatTransformer']>>>transformed=ht.fit_transform_table(table,table_meta,transformer_list=tl)>>>transformed.head(3).T012?date_account_created1.000000e+001.000000e+001.000000e+00date_account_created1.388531e+181.388531e+181.388531e+18?timestamp_first_active1.000000e+001.000000e+001.000000e+00timestamp_first_active1.654000e+131.654000e+131.654000e+13?date_first_booking1.000000e+000.000000e+000.000000e+00date_first_booking1.388790e+180.000000e+000.000000e+00?gender1.000000e+001.000000e+001.000000e+00gender8.522112e-013.412078e-011.408864e-01?age1.000000e+000.000000e+000.000000e+00age6.200000e+013.700000e+013.700000e+01?signup_method1.000000e+001.000000e+001.000000e+00signup_method3.282037e-013.500181e-014.183867e-01?signup_flow1.000000e+001.000000e+001.000000e+00signup_flow4.453093e-013.716032e-013.906801e-01?language1.000000e+001.000000e+001.000000e+00language2.927157e-015.682538e-016.622744e-01?affiliate_channel1.000000e+001.000000e+001.000000e+00affiliate_channel9.266169e-015.640470e-018.044208e-01?affiliate_provider1.000000e+001.000000e+001.000000e+00affiliate_provider7.717574e-012.539509e-017.288847e-01?first_affiliate_tracked1.000000e+001.000000e+001.000000e+00first_affiliate_tracked3.861429e-018.600605e-014.029200e-01?signup_app1.000000e+001.000000e+001.000000e+00signup_app6.915504e-016.373492e-015.798949e-01?first_device_type1.000000e+001.000000e+001.000000e+00first_device_type6.271052e-012.611754e-016.828802e-01?first_browser1.000000e+001.000000e+001.000000e+00first_browser2.481743e-015.087636e-015.023412e-01

然后可以对输出进行反向转换,以获得原始格式的表,但它将 只包含与已转换列相对应的列(即数字列)。

>>>reverse_transformed=ht.reverse_transform_table(transformed,table_meta)>>>reverse_transformed.head(3).T012date_account_created2014-01-012014-01-012014-01-01timestamp_first_active197001010535401970010105354019700101053540date_first_booking2014-01-04NaNNaNgenderMALE-unknown--unknown-age62NaNNaNsignup_methodbasicbasicbasicsignup_flow000languageenenenaffiliate_channelsem-non-branddirectsem-brandaffiliate_providergoogledirectgooglefirst_affiliate_trackedomguntrackedomgsignup_appWebWebWebfirst_device_typeWindowsDesktopMacDesktopWindowsDesktopfirst_browserChromeFirefoxFirefox

转换数据集

超级转换器还可以转换 立即使用meta.json。

>>>fromrdt.hyper_transformerimportHyperTransformer>>>meta_file='examples/data/airbnb/Airbnb_demo_meta.json'>>>ht=HyperTransformer(meta_file)>>>tl=['DTTransformer','NumberTransformer','CatTransformer']>>>transformed=ht.fit_transform(transformer_list=tl)>>>transformed['users'].head(3).T012?date_account_created1.000000e+001.000000e+001.000000e+00date_account_created1.388531e+181.388531e+181.388531e+18?timestamp_first_active1.000000e+001.000000e+001.000000e+00timestamp_first_active1.654000e+131.654000e+131.654000e+13?date_first_booking1.000000e+000.000000e+000.000000e+00date_first_booking1.388790e+180.000000e+000.000000e+00?gender1.000000e+001.000000e+001.000000e+00gender9.061832e-011.729590e-014.287514e-02?age1.000000e+000.000000e+000.000000e+00age6.200000e+013.700000e+013.700000e+01?signup_method1.000000e+001.000000e+001.000000e+00signup_method5.306912e-014.082081e-013.028973e-01?signup_flow1.000000e+001.000000e+001.000000e+00signup_flow4.597129e-014.751324e-015.495054e-01?language1.000000e+001.000000e+001.000000e+00language2.947847e-014.170684e-015.057820e-01?affiliate_channel1.000000e+001.000000e+001.000000e+00affiliate_channel9.213130e-014.712533e-018.231925e-01?affiliate_provider1.000000e+001.000000e+001.000000e+00affiliate_provider7.649791e-012.028804e-017.174262e-01?first_affiliate_tracked1.000000e+001.000000e+001.000000e+00first_affiliate_tracked3.716114e-016.723371e-013.710109e-01?signup_app1.000000e+001.000000e+001.000000e+00signup_app3.583918e-012.627690e-014.544640e-01?first_device_type1.000000e+001.000000e+001.000000e+00first_device_type6.621950e-013.078130e-017.152115e-01?first_browser1.000000e+001.000000e+001.000000e+00first_browser2.410379e-014.766930e-014.865389e-01>>>transformed['sessions'].head(3).T012?action1.0000001.0000001.000000action0.3613820.5978910.353806?action_type1.0000001.0000001.000000action_type0.0899130.5603510.046400?action_detail1.0000001.0000001.000000action_detail0.0702120.8522460.107477?device_type1.0000001.0000001.000000device_type0.7264470.7112310.710298?secs_elapsed1.0000001.0000001.000000secs_elapsed319.00000067753.000000301.000000>>>reverse_transformed=ht.reverse_transform(tables=transformed)>>>reverse_transformed['users'].head(3).T012date_account_created2014-01-012014-01-012014-01-01timestamp_first_active197001010535401970010105354019700101053540date_first_booking2014-01-04NaNNaNgenderMALE-unknown--unknown-age62NaNNaNsignup_methodbasicbasicbasicsignup_flow000languageenenenaffiliate_channelsem-non-branddirectsem-brandaffiliate_providergoogledirectgooglefirst_affiliate_trackedomguntrackedomgsignup_appWebWebWebfirst_device_typeWindowsDesktopMacDesktopWindowsDesktopfirst_browserChromeFirefoxFirefox>>>reverse_transformed['sessions'].head(3).T012actionlookupsearch_resultslookupaction_typeNoneclickNoneaction_detailNoneview_search_resultsNonedevice_typeWindowsDesktopWindowsDesktopWindowsDesktopsecs_elapsed31967753301

历史记录

0.1.2

  • 为正数添加一个数字转换器。
  • 添加选项以匿名化分类转换器上的数据。
  • col_meta参数从方法级别移动到类级别。
  • 将缺少值的逻辑从变压器移到HyperTransformer
  • 已删除NullTransformer中的不可检查行。
  • Numbertransfomer当列为空时将默认值设置为0。
  • 为合作者添加cla。
  • 重构变压器的性能。

0.1.1

  • 改进对中性点进线变压器和整流变压器的处理。
  • 为超高压变压器添加单元测试。
  • 将未使用的方法get_typesimpute_table从高压变压器中删除。
  • 使numbertransformer对整数数据强制执行dtype int。
  • 转换前让dttransformer检查数据格式。
  • 添加最小的API引用。
  • rdt.utils合并到HyperTransformer类中。

0.1.0

  • pypi上的第一个版本。

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

推荐PyPI第三方库


热门话题
java在创建hashmap时正确使用泛型   java java编译器和模块   从每个ArrayList对象具有多个值的ArrayList写入文本文件(java)   java日程表每日报警管理器   显示客户端屏幕的java   尝试使用jpcap读取数据包时出现网络编程异常(java.lang.InstanceionException)   java如何为API测试创建JSESSIONID   ReportServer中的电子邮件SMTP配置和java错误。没有为PKCS#12密钥库提供密码   java如何最小化UDP数据包丢失   使用自定义hibernate类型时出现java ehcache错误?   java异步servlet,我们为什么需要它   java元数据项错误   security Java安全地存储代码中使用所需的用户帐户详细信息   替换文件中包含的文件名,并使用java将文件重命名为新名称   java Lucene按国家排序   java casting Integer>Object和更高版本的Object>Integer   java如何从电子表格行项将准备好的语句循环到derby数据库   需要安卓 java中模型的值名称