python log()函数类型错误

python log()函数类型错误,python,ipython,sframe,Python,Ipython,Sframe,我有一个名为“sales”的数据集,它是一个SFrame。 有一个名为“sqft_living”的列,我想将其转换为log value。列的数据类型为float。但是,当我尝试用log()函数转换它时,它会请求一个float,尽管它已经是一个float了。 下面是代码和错误的屏幕截图。您能帮我找到问题并将该列转换为日志吗 a=train_data['sqft_living'] a result of a dtype: float Rows: 17384 [1180.0, 2570.0, 770

我有一个名为“sales”的数据集,它是一个SFrame。 有一个名为“sqft_living”的列,我想将其转换为log value。列的数据类型为float。但是,当我尝试用log()函数转换它时,它会请求一个float,尽管它已经是一个float了。 下面是代码和错误的屏幕截图。您能帮我找到问题并将该列转换为日志吗

a=train_data['sqft_living']
a

result of a
dtype: float
Rows: 17384
[1180.0, 2570.0, 770.0, 1960.0,...]
这表明“a”是浮动的

然后,我使用下面的代码将值转换为登录到名为“log_sqft_living”的新列中

train_data['log_sqft_living']= log(a)
但它给出了以下误差

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-23-6de995ee575f> in <module>()
----> 1 train_data['log_sqft_living']= log(a)

TypeError: a float is required
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
---->1列车数据['log\u sqft\u living']=log(a)
TypeError:需要浮点

在Windows 10上使用Python shell使用Python 3.5

正如拉胡尔所指出的,
a
是一个列表。
您可以获取列表中的一个元素,如下所示,它将起作用:

>>> import math
>>> train_data=[12.1, 14.5, 56.5, 43.2]
>>> a=train_data
>>> a
[12.1, 14.5, 56.5, 43.2]
>>> another_train_data=math.log(a[1])
>>> another_train_data
2.6741486494265287
>>> 

numpy.log
可与数组一起使用

>>> import numpy
>>> a = numpy.array([180.0, 2570.0, 770.0, 1960.0])
>>> b = numpy.log(a)
>>> b
array([ 5.19295685,  7.85166118,  6.64639051,  7.58069975])

在您的示例中,
a
是float类型的SArray。它不能传递给任何接受浮点的函数。但是,您可以将任何带浮点的函数应用于SArray,如下所示:

import math
log_a = a.apply(math.log)

如果需要获取SFrame的日志,则需要执行以下操作:

从数学导入日志

列车数据['sqft\u living']。应用(日志)

请不要发布代码或作为图像输出。几个月后,这个形象可能会消失,然后你的问题将对其他处于同样情况的人毫无帮助。请编辑您的问题以包含IPython会话的文本。
a
是一个列表。不是浮子。请不要包括图片。将所有代码粘贴到这里。非常感谢您的回复。我已经编辑了这篇文章。任何帮助都将非常感激。不客气。如果你觉得我的回答有用,请投票表决。谢谢