Blaze 数据字段映射抛出 TypeError
Blaze Data field map throws TypeError
我最近开始将我的数据探索代码集从 pandas
移动到 blaze
。我 运行 关注以下问题。
假设:
from blaze import *
s = Data([(1, 'Alice', 100),
... (2, 'Bob', -200),
... (3, 'Charlie', 300),
... (4, 'Denis', 400),
... (5, 'Edith', -500)],
... fields=['id', 'name', 'balance'])
我们可以通过 into
使用 pandas.DataFrame
轻松计算出如下内容:
into(pd.DataFrame,s).balance.apply(abs)
但是,我在尝试做时遇到了严重的困难:
s.balance.map(abs,schema='{b: int64}')
抛出 TypeError: a bytes-like object is required, not 'int'
等等。
此问题似乎与已关闭的 Best approach to apply a function to a column or create a new column by applying a function to another one? 有关,所以我不确定该转向哪里。
ps:如果您觉得这很琐碎并且想把问题记下来,请同时提供完整的工作答案。
尝试将 'int64'
作为 datashape
传递,而不是传递 schema
的值。这是第二个关键字参数,所以你不需要给它命名。以下:
from blaze import *
s = Data([(1, 'Alice', 100),
(2, 'Bob', -200),
(3, 'Charlie', 300),
(4, 'Denis', 400),
(5, 'Edith', -500)],
fields=['id', 'name', 'balance'])
s.balance.map(abs, 'int64')
为我工作,并产生:
balance
0 100
1 200
2 300
3 400
4 500
p.s。虽然从 blaze 导入所有内容似乎正在破坏内置 abs
和 blaze.expr.abs
,但我认为这无关紧要。
我最近开始将我的数据探索代码集从 pandas
移动到 blaze
。我 运行 关注以下问题。
假设:
from blaze import *
s = Data([(1, 'Alice', 100),
... (2, 'Bob', -200),
... (3, 'Charlie', 300),
... (4, 'Denis', 400),
... (5, 'Edith', -500)],
... fields=['id', 'name', 'balance'])
我们可以通过 into
使用 pandas.DataFrame
轻松计算出如下内容:
into(pd.DataFrame,s).balance.apply(abs)
但是,我在尝试做时遇到了严重的困难:
s.balance.map(abs,schema='{b: int64}')
抛出 TypeError: a bytes-like object is required, not 'int'
等等。
此问题似乎与已关闭的 Best approach to apply a function to a column or create a new column by applying a function to another one? 有关,所以我不确定该转向哪里。
ps:如果您觉得这很琐碎并且想把问题记下来,请同时提供完整的工作答案。
尝试将 'int64'
作为 datashape
传递,而不是传递 schema
的值。这是第二个关键字参数,所以你不需要给它命名。以下:
from blaze import *
s = Data([(1, 'Alice', 100),
(2, 'Bob', -200),
(3, 'Charlie', 300),
(4, 'Denis', 400),
(5, 'Edith', -500)],
fields=['id', 'name', 'balance'])
s.balance.map(abs, 'int64')
为我工作,并产生:
balance
0 100
1 200
2 300
3 400
4 500
p.s。虽然从 blaze 导入所有内容似乎正在破坏内置 abs
和 blaze.expr.abs
,但我认为这无关紧要。