数据结构
数据结构说明
Data
class Data(args, *kwargs)
用于存储数据的通用类,会存储数据、数据属性等信息同时还会定义数据基本操作。Data中数据存储的主要数据类型为pandas.Dataframe,数据属性信息通过Domain实例进行存储。
Properties
- data(pandas.Dataframe): 存储的数据,pandas.Dataframe数据实例
- X(pandas.Dataframe): 特征属性数据
- Y(pandas.Dataframe): 目标属性数据
- var_values(pandas.Dataframe): 特征属性及目标属 性数据
- descs_values(pandas.Dataframe): 描述属性数据
- name(str): 数据名称
- size(int): 数据行数
- shape(tuple): 数据维度
- columns(list): 数据属性列表
Contructors
- _init_(data):
通过读取pandas.Dataframe数据构建Data实例
Parameters:
- data(pandas.Dataframe) - pandas.Dataframe数据实例
Returns: 基于pandas.Dataframe数据实例构建的Data实例
Return type: aistudio_commons.core.io.data.Data
- classmethod Data.from_file(file, sep=',')
通过读取csv, excel或feather文件构建Data实例
Parameters:
- file(str) - 文件
- sep(str) - 分隔符,用于数据分割的标识
Returns: 基于文件数据构建的Data实例
Return type: aistudio_commons.core.io.data.Data
- classmethod Data.from_csv(file, sep=',')
通过读取csv文件构建Data实例
Parameters:
- file(str) - 文件
- sep(str) - 分隔符,用于数据分割的标识
Returns: 基于csv文件数据构建的Data实例
Return type: aistudio_commons.core.io.data.Data
- classmethod Data.from_excel(file, **kwargs)
通过读取excel文件构建Data实例
**Parameters: **
- file(str) - 文件
Returns: 基于excel文件数据构建的Data实例
Return type: aistudio_commons.core.io.data.Data
- classmethod Data.from_feather(file)
通过读取feather文件构建Data实例
Parameters:
- file(str) - 文件
Returns: 基于feather文件数据构建的Data实例
Return type: aistudio_commons.core.io.data.Data
- classmethod Data.from_sql_table(table_name, conn)
通过读取数据库表构建Data实例
Parameters:
- table_name(str) - 文件
- conn(str): sqlalchemy数据库连接URI
Returns: 基于数据库表构建的Data实例
Return type: aistudio_commons.core.io.data.Data
- classmethod Data.from_url(url)
通过读取url链接数据构建Data实例
Parameters:
- url(str) - 可访问的数据链接
Returns: 基于url链接数据构建的Data实例
Return type: aistudio_commons.core.io.data.Data
- classmethod Data.from_domain(domain)
通过给定domain实例构建Data实例
Parameters:
- domain(aistudio_commons.core.io.domain.Domain) - 可访问的数据链接
Returns: 基于url链接数据构建的Data实例
Return type: aistudio_commons.core.io.data.Data
Methods
- copy()
拷贝Data实例并返回
Returns: 拷贝Data实例
Return type: aistudio_commons.core.io.data.Data
- add_column(name, values, type, role)
新增一列数据
Parameters:
- name(str) - 列名
- values(numpy.array) - 列值
- type(int) - 属性类型
提示
AttrType.CATEGORICAL.value = 1 离散类型
AttrType.NUMERIC.value = 2 数值类型
AttrType.TEXT.value = 3 文本类型
AttrType.DATETIME.value = 4 日期类型
:::
- role(int) - 属性类别
提示
AttrRole.SKIP.value = -1 不用于分析展示
AttrRole.FEATURE.value = 0 特征属性
AttrRole.TARGET.value = 1 目标属性
AttrRole.META.value = 2 描述属性
:::
- remove_column(self, col_idx, attr_indicator=AttrIndicator.INDEX.value)
删除一列数据
Parameters:
- col_idx(str) - 属性标识
- attr_indicator(int) - 属性指示器
提示
INDEX = 0 根据序号定位属性
NAME = 1 根据列名定位属性
:::
- transform(mapping, attr_indicator=AttrIndicator.NAME.value, delete_on_skip=True):
修改元数据信息(属性名称、类型、角色)
Parameters:
- mapping(dict) - 属性修改字典
提示
{
[属性名]:
{
'name': [新属性名],
'type': [新类型],
'role': [新角色]
}
}
:::
- attr_indicator(int) - 属性指示器
提示
INDEX = 0 根据序号定位属性
NAME = 1 根据列名定位属性
:::
- delete_on_skip(bool) - 是否删除skip类别的属性
- description()
获取数据基本信息
**Returns: **数据的基本信息
Return type: dict
- to_dict()
数据转换,方便前端展示
Returns: 转换后的数据
提示
{ "columns": 属性列表 "data": 数据列表 }
:::
Return type: dict
- to_dict_by_count(count)
转换指定行数的数据
Parameters:
count(int) - 返回前多少行的数据
**Returns:**转换后的数据
提示
{ "columns": 属性列表 "data": 数据列表 }
:::
Return type: dict
Domain
class Domain()
存储数据属性相关信息,包括属性名称,属性类型,属性类别等信息。
Properties
- attributes(list) - 特征属性列表
- class_vars(list) - 目标属性列表
- class_var(str) - 目标属性
- time_variable(str) - 日期属性
- time_values(numpy.ndarray) - 日期属性数据
- time_delta(int) - 日期属性中的时间间隔
- types(list) - 属性类型列表
- roles(list) - 属性类别列表
- categorical_attrs(list) - 离散型属性列表
- continuous_attrs(list) - 连续型特征属性列表
- continuous_vars(list) - 连续型属性列表
- columns(list) - 属性列表
Contructors
- _init_(data):
通过传入的pandas.Dataframe数据构建Domain实例
Parameters:
- data(pandas.Dataframe) - pandas.Dataframe数据
Returns: 基于pandas.Dataframe数据实例构建的Domain实例
Return type: aistudio_commons.core.io.domain.Domain
- classmethod from_columns(data, attributes, class_vars, descs)
根据指定的属性类别信息构建Domain实例
Parameters:
- data(pandas.Dataframe) - pandas.Dataframe数据
- attributes(list) - 特征属性列表
- class_vars(list) - 目标属性列表
- descs(list) - 描述属性列表
Returns: 基于pandas.Dataframe数据实例构建的Domain实例
Return type: aistudio_commons.core.io.domain.Domain
Methods
- refresh(role_detail, name_detail, type_detail)
重新构造domain实例
Parameters:
role_detail(dict) - 属性类别字典,{"原始列名": AttrRole, ...}
name_detail(dict) - 名称字典,{"原始列名": "新列名", ...}
type_detail(dict) - 属性类型字典,{"原始列名": AttrType, ...}
Returns: 基于配置信息重新构造的Domain实例
Return type: aistudio_commons.core.io.domain.Domain
- has_discrete_attrs()
数据是否包含离散型特征属性(针对特征属性)
Returns: 是否包含离散型特征属性,True包含,False不包含
Return type: bool
- has_continuous_attrs()
数据是否包含连续型特征属性(针对特征属性)
Returns: 是否包含连续型特征属性,True包含,False不包含
Return type: bool
- has_discrete_vars()
数据是否包含离散型属性(针对特征属性+目标属性)
Returns: 是否包含离散型属性,True包含,False不包含
Return type: bool
- has_continuous_vars()
数据是否包含连续型属性(针对特征属性+目标属性)
Returns: 是否包含连续型属性,True包含,False不包含
Return type: bool
- has_discrete_clms()
数据是否包含离散型属性(针对所有属性)
Returns: 是否包含离散型属性,True包含,False不包含
Return type: bool
- has_continuous_clms()
数据是否包含连续性属性(针对所有属性)
Returns: 是否包含连续型属性,True包含,False不包含
Return type: bool
- has_discrete_class()
数据是否包含离散型目标属性(针对目标属性)
Returns: 是否包含离散型目标属性,True包含,False不包含
Return type: bool
- has_continuous_class()
数据是否包含连续型目标属性(针对目标属性)
Returns: 是否包含连续型目标属性,True包含,False不包含
Return type: bool