np.array中的函数

时间:2015-11-30 05:05:15

标签: python numpy pandas

我正在尝试将我拥有的.values转换为其中包含函数的数组,但不断出现错误。非常感谢帮助!

这是.values:

<form name="billdata" id="billdata"  enctype="multipart/form-data"  novalidate ng-enter="addProfileData(billdata);" >

这是使数组作为错误出现的命令:

Y = df['GDP_growth'].values
array(['3.299991384', '-1.760010328', '5.155440545', '4.019541839',
       '0.801760179', '7.200000003', '3.727818428', '0.883846197'], dtype-object)

在我的情况下,错误是它全部都是1。

2 个答案:

答案 0 :(得分:0)

您可以使用numpy过滤,但首先需要根据需要将类型从strobject更改为floatnp.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.])

编辑

如果您需要进行一些预处理以将数据转换为数字值,则可以使用to_numeric然后dropna使用有趣的系列或whole dataframe,即系列:

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  

答案 1 :(得分:0)

想出来!显然我有一些缺失的值表示为'..',所以我不得不首先通过删除那些行来解决它 - 然后我可以申请.astype