polyfit,类型错误:必须海峡,不浮动
问题描述:
m, b = np.polyfit(df['Combined Length'], df['Mean Runtime'], 1)
线产生错误:“类型错误:必须海峡,不浮动”。为什么它需要一个字符串?如果我输入(2,3,4)和(4,6,8),它工作正常。如果两个熊猫列转换为红线,它也不起作用。
初始转换为数组时发生问题。
答
它与这个玩具数据框:
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.])
如何是你的有什么不同?
答
将pd.to_numeric应用于列解决了问题。他们是对象类型的。我不确定为什么错误消息要求'str不浮动'。
TypeError发生什么功能? 只需阅读堆栈跟踪。 – YSelf
'polyfit'的第一件事是'np.asarray(X)'和'Y' - 也就是将2个输入转换为数组。 'np.asarray(df ['Combined Length'])'工作吗?如果不是,请查看从'df'列中提取数组的正确方法。 – hpaulj