Python3错误:需要浮点

Python3错误:需要浮点,python,Python,我不明白为什么这行代码会出错: 测试数据:数组,sqft\u living:一列 在这行中,我添加了一个新的列“log_sqft_living”,它应该包含log'sqft_living' 在寻找类似的消息后,我发现答案是它应该是一个数字,这就是为什么我们必须使用floatx格式化,但当我使用它时,错误变成了参数应该是字符串的数字。有人能给我解释一下为什么会发生这些错误吗 当我尝试对单个数字使用logtest_data['sqft_living'][1]时,我没有得到任何错误 谢谢您正在将log

我不明白为什么这行代码会出错:

测试数据:数组,sqft\u living:一列

在这行中,我添加了一个新的列“log_sqft_living”,它应该包含log'sqft_living'

在寻找类似的消息后,我发现答案是它应该是一个数字,这就是为什么我们必须使用floatx格式化,但当我使用它时,错误变成了参数应该是字符串的数字。有人能给我解释一下为什么会发生这些错误吗

当我尝试对单个数字使用logtest_data['sqft_living'][1]时,我没有得到任何错误

谢谢

您正在将log函数应用于生成器,但它只接受一个值。将该行更改为列表理解,使其成为显式列表,并将日志移动到理解中,以便将其应用于每个元素:

test_data['log_sqft_living'] = [ log(test_data['sqft_living'][i]) for i in range(len(test_data)) ]
对于in-is列表理解, 您可以在此处阅读有关列表理解的更多信息:

这意味着,它会生成一个列表结构,而函数log希望得到一个数字。math.logx[,base]

你可以这样重组你的陈述: 测试数据['log_sqft_living']=[logtest_数据['sqft_living'][i]用于范围内的i测试数据]

注意:test_data['log_sqft_living']将包含一个带有此示例的列表
由于您没有提供有关上下文和您想要实现的目标的信息,因此我无法提供更好的解决方案

测试数据是一个数组右括号的位置看起来是错误的。尝试logtest_数据['sqft_living'][i]以获取RangeTest_数据中的i
test_data['log_sqft_living'] = [ log(test_data['sqft_living'][i]) for i in range(len(test_data)) ]