草庐IT

python - Pandas:转换为数字,必要时创建 NaN

假设我在数据框中有一列包含一些数字和一些非数字>>df['foo']00.01103.82751.130.040.05-6-70.08-90.0Name:foo,Length:9,dtype:object如何将此列转换为np.float,并让其他所有非float转换为NaN?当我尝试时:>>df['foo'].astype(np.float)或>>df['foo'].apply(np.float)我得到ValueError:couldnotconvertstringtofloat:- 最佳答案 在Pandas中0.17.0conve

python - Numpy 整数 nan

这个问题在这里已经有了答案:NumPyorPandas:KeepingarraytypeasintegerwhilehavingaNaNvalue(10个回答)关闭8年前。有没有办法将NaN存储在Numpy整数数组中?我明白了:a=np.array([1],dtype=long)a[0]=np.nanTraceback(mostrecentcalllast):File"",line1,inValueError:cannotconvertfloatNaNtointeger 最佳答案 不,你不能,至少对于当前版本的NumPy。nan是f

python - 如何过滤 NaN( Pandas )?

我有一个pandas数据框(df),我想做类似的事情:newdf=df[(df.var1=='a')&(df.var2==NaN)]我尝试将NaN替换为np.NaN、'NaN'或'nan'等,但没有任何结果为True.没有pd.NaN。我可以在评估上面的表达式之前使用df.fillna(np.nan)但这感觉很hackish,我想知道它是否会干扰依赖于能够识别pandas的其他pandas操作-稍后格式化NaN。我觉得这个问题应该有一个简单的答案,但不知何故它让我无法理解。任何建议表示赞赏。谢谢。 最佳答案 最简单的解决方案:fil

python - 训练回归网络时的 NaN 损失

我有一个具有260,000行和35列的“单热编码”(全一和零)数据矩阵。我正在使用Keras训练一个简单的神经网络来预测一个连续变量。制作网络的代码如下:model=Sequential()model.add(Dense(1024,input_shape=(n_train,)))model.add(Activation('relu'))model.add(Dropout(0.1))model.add(Dense(512))model.add(Activation('relu'))model.add(Dropout(0.1))model.add(Dense(256))model.add(

python - 当我除以零时如何得到 NaN

当我在Python中进行浮点除法时,如果我除以零,我会得到一个异常:>>>1.0/0.0Traceback(mostrecentcalllast):File"",line1,inZeroDivisionError:floatdivision我真的很想得到NaN或Inf代替(因为NaN或Inf会传播通过我的其余计算正确,而不是杀死我的程序)。我该怎么做? 最佳答案 获得这种行为的最简单方法是使用numpy.float64而不是Python默认的float类型:>>>importnumpy>>>numpy.float64(1.0)/0.

python - 删除 Pandas 数据框中的 NaN/NULL 列?

我在pandas中有一个dataFrame,其中几列都有空值。是否有内置函数可以让我删除这些列? 最佳答案 是的,dropna。见http://pandas.pydata.org/pandas-docs/stable/missing_data.html和DataFrame.dropna文档字符串:Definition:DataFrame.dropna(self,axis=0,how='any',thresh=None,subset=None)Docstring:Returnobjectwithlabelsongivenaxisomi

python - 计算数据框每一列中的非nan条目的数量

我有一个大量的数据框架,我想知道是否有短暂的(一两个衬里)在数据框架中获取非nan条目的方法。我不想一次执行此列,因为我接近1000列。df1=pd.DataFrame([(1,2,None),(None,4,None),(5,None,7),(5,None,None)],columns=['a','b','d'],index=['A','B','C','D'])abdA12NaNBNaN4NaNC5NaN7D5NaNNaN输出:a:3b:2d:1 最佳答案 count()方法返回每列中的非nan值的数量:>>>df1.count(

python - numpy 或 scipy 有哪些可能的计算可以返回 NaN?

关闭。这个问题需要更多focused.它目前不接受答案。想要改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion在Python中,哪些最常见的操作会导致使用NumPy或SciPy时产生的NaN?例如:1e500-1e500>>>nan这种行为的原因是什么,为什么它不返回0? 最佳答案 如果您在不使用浮点环境的情况下执行以下任何操作,您应该得到一个以前没有的NaN:0/0(顶部和底部的任一标志)inf/inf(顶部和底部的任一标志)inf-inf或(-inf)+

python - 获取 pandas.read_csv 以将空值读取为空字符串而不是 nan

我正在使用pandas库来读取一些CSV数据。在我的数据中,某些列包含字符串。字符串"nan"是一个可能的值,空字符串也是如此。我设法让Pandas将“nan”读取为字符串,但我不知道如何让它不将空值读取为NaN。这是示例数据和输出One,Two,Threea,1,oneb,2,two,3,threed,4,nane,5,fivenan,6,g,7,seven>>>pandas.read_csv('test.csv',na_values={'One':[],"Three":[]})OneTwoThree0a1one1b2two2NaN3three3d4nan4e5five5nan6Na

python - 将nan值转换为零

我有一个2Dnumpy数组。此数组中的一些值是NaN。我想使用这个数组执行某些操作。例如考虑数组:[[0.43.67.0.38.][100.86.96.100.94.][76.79.83.89.56.][88.NaN67.89.81.][94.79.67.89.69.][88.79.58.72.63.][76.79.71.67.56.][71.71.NaN56.100.]]我正在尝试一次取每一行,以相反的顺序对其进行排序,以从该行中获取最多3个值并取它们的平均值。我试过的代码是:#nparrisa2Dnumpyarrayforentryinnparr:sortedentry=sorte