Python np.array中的函数
我正在尝试将我拥有的.value转换成一个数组,该数组中有一个函数,但不断出现错误。谢谢你的帮助 以下是。值:Python np.array中的函数,python,numpy,pandas,Python,Numpy,Pandas,我正在尝试将我拥有的.value转换成一个数组,该数组中有一个函数,但不断出现错误。谢谢你的帮助 以下是。值: Y = df['GDP_growth'].values array(['3.299991384', '-1.760010328', '5.155440545', '4.019541839', '0.801760179', '7.200000003', '3.727818428', '0.883846197'], dtype-object) 以下是使数组显示为错误的命令:
Y = df['GDP_growth'].values
array(['3.299991384', '-1.760010328', '5.155440545', '4.019541839',
'0.801760179', '7.200000003', '3.727818428', '0.883846197'], dtype-object)
以下是使数组显示为错误的命令:
Y = np.array([1 if y>= 3 else 0 for y in Y])
在我的例子中,错误是所有结果都是1。您可以使用numpy筛选,但首先需要根据需要将类型从
str
或object
更改为float
或np.float
:
import numpy as np
Y = np.array(['3.299991384', '-1.760010328', '5.155440545', '4.019541839',
'0.801760179', '7.200000003', '3.727818428', '0.883846197'], dtype=object)
Y = Y.astype(float)
Y[Y<=3] = 0
Y[Y>3] = 1
In [67]: Y
Out[67]: array([ 1., 0., 1., 1., 0., 1., 1., 0.])
明白了!显然,我有一些缺少的值被表示为“..”,所以我必须先通过删除这些行来解决它,然后我才能应用。astype错误是怎么说的<在列表理解中,如果,则的代码>应位于
之前。另外,您的np.array
中填充的是字符串而不是数字。这里有很多问题需要解决…如果
/的顺序是
/的话,请不要太快阅读。不幸的是,它仍然是这个错误:--------------------------------------------------------------------------------------ValueError Traceback(最近一次调用last)in()------>1 Y=Y.astype(float)ValueError:无法将字符串转换为float:。。
z = pd.Series(Y)
z[0] = 'a'
In [293]: z
Out[293]:
0 a
1 -1.760010328
2 5.155440545
3 4.019541839
4 0.801760179
5 7.200000003
6 3.727818428
7 0.883846197
dtype: object
pd.to_numeric(z, errors='coerce').dropna()
In [296]: pd.to_numeric(z, errors='coerce').dropna()
Out[296]:
1 -1.760010
2 5.155441
3 4.019542
4 0.801760
5 7.200000
6 3.727818
7 0.883846
dtype: float64