我和福尔有一个熊猫系列。value_counts
输出():
NaN 2741
197 1891
127 188
194 42
195 24
122 21
当我在这个系列中执行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's
numpy.array(df[col_name])
对熊猫系列成功转换为numpy阵列的建议
从pandas的v 0.24.0开始-您可以使用
.array
和.to_numpy
访问pandas系列的备份数组pandas 0.24.x release notes 引号:“Series.array和Index.array已添加,用于提取支持序列或索引的数组。。。我们没有删除或弃用Series.values或DataFrame.values,但我们强烈建议使用.array或.to numpy()
。。。当您需要序列中存储的数据数组时,我们建议使用Series.array,和Series.to_numpy()当您知道您需要numpy数组时。“
函数^{} 和方法
np.ndarray.min
对于任何包含一个或多个NaN值的数组都将始终返回NaN(这是标准的IEE754浮点行为)。您可以使用^{} ,它在计算最小值时忽略NaN值,例如:
更简单的选择是使用^{} 方法,它已经忽略了NaN值,即:
我不知道为什么
numpy.array(df[col_name])
会返回一个只包含nan的数组,除非df[col_name]
开始时已经只包含nan。我想这一定是由于你的代码中的其他错误。相关问题 更多 >
编程相关推荐