DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DA::DADataTable< T > 模板类 参考

以列为基础的数据表,和python 的 pandas.DataFrame类似 更多...

#include <da_data_table.hpp>

Public 类型

enum  Mode { FixedMode , ExpandMode }
 
enum  CaseSensitivity { CaseInsensitive , CaseSensitive }
 
typedef T Type
 
typedef DAVector< T > SeriesType
 
typedef std::shared_ptr< SeriesType > SeriesPtr
 
typedef DAVector< T >::iterator SeriesIterator
 
typedef DAVector< T >::const_iterator SeriesConstIterator
 
typedef DADataTable< T > TableType
 
typedef std::shared_ptr< TableType > TablePtr
 

Public 成员函数

 DADataTable ()
 构造一个空的数据表
 
 DADataTable (int rows, int cols)
 构造一个rows行,cols列的表,表的命名以column_{n}来命名
 
void resize (int r, int c)
 改变table 的大小
 
bool haveColumns (const QString &field) const
 判断是否存在Columns
 
void fill (const T &v)
 填充元素
 
const T & at (int r, int c) const
 定位单元格
 
T & at (int r, int c)
 定位单元格
 
const T & iloc (int r, int c) const
 定位单元格
 
T & iloc (int r, int c)
 定位单元格
 
cell (int r, int c) const
 获取单元格
 
void appendSeries (SeriesPtr ser)
 追加一列
 
void appendSeries (std::initializer_list< T > args, const QString &n)
 
template<typename Ite1 , typename Ite2 >
void appendRow (Ite1 b, Ite2 e)
 
void appendRow (std::initializer_list< T > args)
 
int nameToIndex (const QString &n) const
 
SeriesPtr & series (int c)
 获取行引用
 
const SeriesPtr & series (int c) const
 获取列引用
 
SeriesPtr & series (const QString &n)
 获取列引用
 
const SeriesPtr & series (const QString &n) const
 获取列引用
 
SeriesPtr row (int r) const
 获取一行数据
 
SeriesType & operator[] (int c)
 
const SeriesType & operator[] (int c) const
 
SeriesType & operator[] (const QString &rowname)
 
const SeriesType & operator[] (const QString &rowname) const
 
void reserve (int size)
 
void fixSize ()
 以最大列数进行列数修正,保证所有行同列
 
int columnCount () const
 表的行数
 
int rowCount () const
 表的列数
 
void setMode (Mode m)
 设置表格的模式
 
Mode getMode () const
 获取模式
 
void clear ()
 清空
 
void setName (const QString &n)
 设置表的名字
 
QString getName () const
 获取表的名字
 
QStringList columns () const
 和pandas统一
 
QStringList columnNames () const
 获取列的名字序列
 
void setSeriesNames (const QStringList &ns)
 设置行名,如果是个空的表会生成一个默认行
 
TablePtr takeByValue (const QString &field, T value) const
 提取某个值等于value作为新表
 
QPair< QList< TablePtr >, QList< T > > groupBy (const QString &field) const
 groupby
 
void orderBy (const QString &sn)
 orderBy
 
void orderBy (int cindex)
 排序
 
QPair< T, int > lowerBound (const T &v, const QString &sortedfield) const
 查找第一个大于或等于某个元素的位置
 
QPair< T, int > lowerBound (const T &v, int c) const
 
QPair< T, int > upperBound (const T &v, const QString &sortedfield) const
 
QPair< T, int > upperBound (const T &v, int c) const
 
void setCaseSensitivity (CaseSensitivity cs)
 设置名字查询时是否对大小写敏感
 
bool isCaseSensitivity () const
 判断是否大小写敏感
 

静态 Public 成员函数

static SeriesPtr makeSeries ()
 
static SeriesPtr makeSeries (const QString &n)
 
static SeriesPtr makeSeries (std::initializer_list< T > args)
 
static TablePtr makeTable ()
 

详细描述

template<typename T>
class DA::DADataTable< T >

以列为基础的数据表,和python 的 pandas.DataFrame类似

表格形如:

    列名字

|name| "0" | "1" | "2" | "3" | …… | "n" | 表内容:

行索引

|0 | 1 | 2 | 1 | 0 | …… | 6 | |1 | 4 | 5 | 6 | 7 | …… | 8 | ………………

|n | 9 | 8 | 7 | 6 | …… | 0 |

table.setColumnNames({"c1","c2",……,"cn"});
table.append({1,4,……,9});
table.append({2,5,……,8});
table.append({1,6,……,7});
table.append({0,7,……,6});
……
table.append({6,8,……,0});
以列为基础的数据表,和python 的 pandas.DataFrame类似
Definition da_data_table.hpp:112

可以通过行序号进行索引 table[1] //row2 可以索引到单元格 table.cell(1,2) //row2[2]:6 等同table[1][2] 可以通过行名索引到单元格 table["row2"][2] //row2[2]:6 等同table[1][2]

成员枚举类型说明

◆ CaseSensitivity

template<typename T >
enum DA::DADataTable::CaseSensitivity
枚举值
CaseInsensitive 

大小写不敏感

CaseSensitive 

大小写敏感

◆ Mode

template<typename T >
enum DA::DADataTable::Mode
枚举值
FixedMode 

固定模式,表的行不会随着列的变化而变化

ExpandMode 

扩展模式,表的行是浮动的,如果插入一列比原来要宽,会自动扩充表的原来那些列对应的行数(默认)

构造及析构函数说明

◆ DADataTable()

template<typename T >
DA::DADataTable< T >::DADataTable ( int  rows,
int  cols 
)

构造一个rows行,cols列的表,表的命名以column_{n}来命名

参数
rows
cols

成员函数说明

◆ appendSeries()

template<typename T >
void DA::DADataTable< T >::appendSeries ( SeriesPtr  ser)

追加一列

参数
ser

◆ at() [1/2]

template<typename T >
T & DA::DADataTable< T >::at ( int  r,
int  c 
)

定位单元格

参数
r
c
返回

◆ at() [2/2]

template<typename T >
const T & DA::DADataTable< T >::at ( int  r,
int  c 
) const

定位单元格

参数
r
c
返回

◆ cell()

template<typename T >
T DA::DADataTable< T >::cell ( int  r,
int  c 
) const

获取单元格

参数
r
c
返回
如果没有或超范围,返回默认构造

◆ columnCount()

template<typename T >
int DA::DADataTable< T >::columnCount ( ) const

表的行数

列数

返回

◆ columnNames()

template<typename T >
QStringList DA::DADataTable< T >::columnNames ( ) const

获取列的名字序列

返回

◆ columns()

template<typename T >
QStringList DA::DADataTable< T >::columns ( ) const

和pandas统一

获取列的名字序列 等同

返回
参见
columnNames
返回

◆ fill()

template<typename T >
void DA::DADataTable< T >::fill ( const T &  v)

填充元素

填充值

参数
v
v需要填充的值

◆ fixSize()

template<typename T >
void DA::DADataTable< T >::fixSize ( )

以最大列数进行列数修正,保证所有行同列

在每个列的行数不一样的时候调用此函数让整个表格规整

注解
整个函数在获取series指针并单独处理后,会导致table表格不规整,需要调用此函数使得表格规整

◆ getMode()

template<typename T >
DADataTable< T >::Mode DA::DADataTable< T >::getMode ( ) const

获取模式

返回

◆ getName()

template<typename T >
QString DA::DADataTable< T >::getName ( ) const

获取表的名字

返回

◆ groupBy()

template<typename T >
QPair< QList< typename DADataTable< T >::TablePtr >, QList< T > > DA::DADataTable< T >::groupBy ( const QString &  field) const

groupby

聚合

参数
field
cs
返回
参数
field
返回

◆ haveColumns()

template<typename T >
bool DA::DADataTable< T >::haveColumns ( const QString &  field) const

判断是否存在Columns

参数
field
返回

◆ iloc() [1/2]

template<typename T >
T & DA::DADataTable< T >::iloc ( int  r,
int  c 
)

定位单元格

参数
r
c
返回

◆ iloc() [2/2]

template<typename T >
const T & DA::DADataTable< T >::iloc ( int  r,
int  c 
) const

定位单元格

参数
r
c
返回

◆ isCaseSensitivity()

template<typename T >
bool DA::DADataTable< T >::isCaseSensitivity ( ) const

判断是否大小写敏感

获取大小写敏感性

返回
参数
cs

◆ lowerBound()

template<typename T >
QPair< T, int > DA::DADataTable< T >::lowerBound ( const T &  v,
const QString &  sortedfield 
) const

查找第一个大于或等于某个元素的位置

DADataTable<T>::lowerBound 查找

注解
需要确保已经进行过排序
参数
v
返回
参数
v
sortedfield
返回

◆ orderBy() [1/2]

template<typename T >
void DA::DADataTable< T >::orderBy ( const QString &  sn)

orderBy

排序

参数
sn

◆ orderBy() [2/2]

template<typename T >
void DA::DADataTable< T >::orderBy ( int  cindex)

排序

参数
cindex

◆ resize()

template<typename T >
void DA::DADataTable< T >::resize ( int  r,
int  c 
)

改变table 的大小

参数
r
c

◆ row()

template<typename T >
DADataTable< T >::SeriesPtr DA::DADataTable< T >::row ( int  r) const

获取一行数据

参数
r
返回

◆ rowCount()

template<typename T >
int DA::DADataTable< T >::rowCount ( ) const

表的列数

行数

返回

◆ series() [1/4]

template<typename T >
DADataTable< T >::SeriesPtr & DA::DADataTable< T >::series ( const QString &  n)

获取列引用

参数
n列名
返回

◆ series() [2/4]

template<typename T >
const DADataTable< T >::SeriesPtr & DA::DADataTable< T >::series ( const QString &  n) const

获取列引用

参数
n列名
返回

◆ series() [3/4]

template<typename T >
DADataTable< T >::SeriesPtr & DA::DADataTable< T >::series ( int  c)

获取行引用

参数
c列索引
返回

◆ series() [4/4]

template<typename T >
const DADataTable< T >::SeriesPtr & DA::DADataTable< T >::series ( int  c) const

获取列引用

参数
c列索引
返回

◆ setCaseSensitivity()

template<typename T >
void DA::DADataTable< T >::setCaseSensitivity ( CaseSensitivity  cs)

设置名字查询时是否对大小写敏感

设置大小写敏感性

参数
cs

◆ setMode()

template<typename T >
void DA::DADataTable< T >::setMode ( Mode  m)

设置表格的模式

参数
m模式 Mode

◆ setName()

template<typename T >
void DA::DADataTable< T >::setName ( const QString &  n)

设置表的名字

参数
n

◆ setSeriesNames()

template<typename T >
void DA::DADataTable< T >::setSeriesNames ( const QStringList &  ns)

设置行名,如果是个空的表会生成一个默认行

设置列的名字序列

参数
ns
注解
如果设置的名字多于当前的列名,会构造出默认的列
参数
ns

◆ takeByValue()

template<typename T >
DADataTable< T >::TablePtr DA::DADataTable< T >::takeByValue ( const QString &  field,
value 
) const

提取某个值等于value作为新表

逐行遍历,把指定列的内容和值一致的行保留,形成一个新的表,主要用于匹配

参数
field
value
cs
返回
参数
field
value
返回

该类的文档由以下文件生成: