我有一个像这样的blaze
数据对象
import blaze as bz
bdata = bz.Data([(1, 'Alice', 100.9),
(2, 'Bob', 200.6),
(3, 'Charlie', 300.45),
(5, 'Edith', 400)],
fields=['id', 'name', 'amount'])
bdata
| id | name | amount
--------------------------
0 | 1 | Alice | 100.90
1 | 2 | Bob | 200.60
2 | 3 | Charlie| 300.45
3 | 5 | Edith | 400.00
我想只获取那些包含numeric datatypes
的列名。例如,此处只有id
和amount
具有数值。
我可以使用dshape
获取列类型,如下所示
bdata.dshape
dshape("4 * {id: int64, name: string, amount: float64}")
但不确定如何正确使用它。我知道如何使用pandas
函数在_get_numeric_data()
中执行相同的操作。在blaze
答案 0 :(得分:0)
可能有一种更简单的方法。这是完成它的一种方法
In [75]:
def get_numeric_cols(dshape):
shape = dshape.parameters[-1].dict
cols = []
for k in shape:
type = str(shape[k])
if type.startswith("int") or type.startswith("float"):
cols.append(k)
return cols
In [76]: get_numeric_cols(bdata.dshape)
Out[76]: ['amount', 'id']
基本上,查找int*
或float*
类型?