Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Blaze数据字段映射抛出类型错误_Python_Blaze - Fatal编程技术网

Python Blaze数据字段映射抛出类型错误

Python Blaze数据字段映射抛出类型错误,python,blaze,Python,Blaze,我最近开始将我的数据探索代码集从pandas移动到blaze。我遇到了以下问题 假设: from blaze import * s = Data([(1, 'Alice', 100), ... (2, 'Bob', -200), ... (3, 'Charlie', 300), ... (4, 'Denis', 400), ... (5, 'Edith', -500)], ... fields=[

我最近开始将我的数据探索代码集从
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'])
我们可以使用
pandas.DataFrame
通过
进入
轻松计算如下内容:

into(pd.DataFrame,s).balance.apply(abs)
然而,我在尝试做以下事情时遇到了严重困难:

s.balance.map(abs,schema='{b: int64}')
抛出一个
类型错误:需要一个类似字节的对象,而不是'int'

这个问题似乎与哪个已经结束有关,所以我不知道该转向哪里


ps:如果你觉得这很琐碎,想把问题记下来,也请提供一个完整的工作答案。

试着将
'int64'
作为
数据形状传递,而不是为
模式
传递一个值。这是第二个关键字参数,因此不需要命名它。以下是:

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、 虽然从blaze中导入所有东西似乎在用blaze.expr.abs
冲击内置的
abs
,但我认为这并不重要。

我想指出,
s=transform(s,b=abs(s.balance))
做了正确的事情。但在这个问题中,我使用了
abs
函数作为任何作用于一个变量/字段的函数的易于理解的占位符。问题仍然是,
def FindC(word):返回word.lower().find('c')
不能像在
transform(s,hasC=FindC(s.name))中那样使用。
。这样做,我得到了
AttributeError:'Field'对象没有属性'lower'
我仍然得到了long
类型错误:需要一个类似字节的对象,而不是'int'
我使用的是
blaze
版本
0.9.1
。您使用的是什么版本?我使用的是
0.9.0
。我发现在使用
列表创建
数据
实例后,我也遇到了一个错误,就像上面所做的那样。我玩了一会儿,我认为需要使用
datashape
参数,而不是
schema
。我会更新答案。