首页 > 解决方案 > 如何根据pydatatable中的数据类型选择列?

问题描述

我正在创建一个数据表,如下所示,

spotify_songs_dt = dt.fread('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-01-21/spotify_songs.csv')

它的列类型是,

spotify_songs_dt.stypes

这里我想只取出DT的数字字段,如何以数据表的方式实现?在 pandas 数据框中,我们有一种函数 select_dtypes() 。

标签: pythonpy-datatable

解决方案


如果您有一个 frame DT,那么选择特定类型的列的最直接方法是在DT[:,j]选择器中使用该类型本身:

DT[:, bool]          # all boolean columns
DT[:, int]           # all integer columns
DT[:, float]         # all floating columns
DT[:, str]           # string columns
DT[:, dt.int32]      # columns with stype int32
DT[:, dt.ltype.int]  # columns with ltype `int`, same as DT[:, int]

还可以提供类型列表以供选择:

DT[:, [int, float]]          # integer and floating columns
DT[:, [dt.int32, dt.int64]]  # int32 and int64 columns

有时删除不需要的类型的列而不是选择您需要的列也可能很有用:

del DT[:, str]

推荐阅读