Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫系列到numpy阵列转换错误_Python_Numpy_Pandas - Fatal编程技术网

Python 熊猫系列到numpy阵列转换错误

Python 熊猫系列到numpy阵列转换错误,python,numpy,pandas,Python,Numpy,Pandas,我和福勒有一个熊猫系列值\u计数输出() 在本系列中执行descripe()时,我得到: df[col_name].describe() count 2738.000000 mean 172.182250 std 47.387496 min 0.000000 25% 171.250000 50% 197.000000 75% 197.000000 max 197.000000 Name: SS_D_1,

我和福勒有一个熊猫系列<代码>值\u计数输出()

在本系列中执行descripe()时,我得到:

df[col_name].describe()
count    2738.000000
mean      172.182250
std        47.387496
min         0.000000
25%       171.250000
50%       197.000000
75%       197.000000
max       197.000000
Name: SS_D_1, dtype: float64
但是,如果我试图找到最小值和最大值,我会得到nan作为答案:

numpy.min(df[col_name].values)
nan
另外,当我尝试将它转换为numpy数组时,我似乎得到了一个只有nan的数组

numpy.array(df[col_name])
任何关于如何成功地从pandas系列转换为numpy数组的建议

函数和方法
np.ndarray.min
都将始终为包含一个或多个NaN值的任何数组返回NaN(这是标准的IEE754浮点行为)

您可以使用,它在计算最小值时忽略NaN值,例如:

np.nanmin(df[col_name].values)
更简单的选择是只使用该方法,该方法已忽略NaN值,即:

df[col_name].min()

我不知道为什么
numpy.array(df[col\u name])
会返回一个只包含nan的数组,除非
df[col\u name]
一开始就只包含nan。我想这一定是由于代码中的其他错误造成的。

从pandas的V0.24.0开始-您可以使用
.array
访问pandas系列的备份数组

Quote:“Series.array和Index.array已添加用于提取支持序列或索引的数组…我们没有删除或弃用Series.values或DataFrame.values,但我们强烈建议使用.array或.to_numpy()


…当您需要存储在系列、和系列中的数据数组时,建议使用Series.array。当您知道需要numpy数组时,建议使用to_numpy()。

df[col\u name]。值将返回numpy数组。如果数据中有NaN,则使用numpy.min函数进行传播。这意味着如果存在NaN,np.min将始终生成NaN作为anser。尝试nanmin任何包含
nan
的数组的
min
也是
nan
。要忽略
nan
值,请尝试
np.nanmin(df[col\u name].values)
(或者只需
df[col\u name].min()
)。谢谢,但我也得到了一个nan:numpy.array(df[col\u name])。min()问题是,在调用
min()
方法之前,您要将其强制转换为numpy数组
pandas.Series.min()
执行与
np.nanmin
等效的操作并忽略nan值,鉴于
numpy.ndarray.min
相当于
np.min
,对于包含一个或多个
nan
s的数组,它将返回
nan
。@user308827-从pandas'0.24.0开始-您可以使用
.array
访问pandas系列的备份数组。要查找更新的答案,请访问
吼叫。
df[col_name].min()