2017-11-25 79 views
0

代码如下:polyfit,类型错误:必须海峡,不浮动

m, b = np.polyfit(df['Combined Length'], df['Mean Runtime'], 1) 

线产生错误:“类型错误:必须海峡,不浮动”。为什么它需要一个字符串?如果我输入(2,3,4)和(4,6,8),它工作正常。如果两个熊猫列转换为红线,它也不起作用。

初始转换为数组时发生问题。

+0

TypeError发生什么功能? 只需阅读堆栈跟踪。 – YSelf

+0

'polyfit'的第一件事是'np.asarray(X)'和'Y' - 也就是将2个输入转换为数组。 'np.asarray(df ['Combined Length'])'工作吗?如果不是,请查看从'df'列中提取数组的正确方法。 – hpaulj

回答

0

它与这个玩具数据框:

In [441]: df = pandas.DataFrame(np.arange(12).reshape(3,4),columns=list('ABCD') 
    ...:) 
In [442]: df 
Out[442]: 
    A B C D 
0 0 1 2 3 
1 4 5 6 7 
2 8 9 10 11 
In [443]: np.asarray(df['C']) 
Out[443]: array([ 2, 6, 10]) 
In [444]: np.polyfit(df['B'],df['C'],1) 
Out[444]: array([ 1., 1.]) 

如何是你的有什么不同?

0

将pd.to_numeric应用于列解决了问题。他们是对象类型的。我不确定为什么错误消息要求'str不浮动'。

相关问题