polyfit,TypeError:必须是str,而不是float

时间:2017-11-25 22:30:26

标签: python pandas numpy

代码如下:

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

该行产生错误:' TypeError:必须是str,而不是float'。为什么要一个字符串?如果我输入(2,3,4)和(4,6,8)它可以正常工作。如果将两个pandas列转换为ndarrays,它将不起作用。

初始转换为数组时会出现问题。

2 个答案:

答案 0 :(得分:1)

将pd.to_numeric应用于列以解决问题。它们属于对象类型。我不确定为什么错误消息要求'str not float'。

答案 1 :(得分: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.])

你们有什么不同?