草庐IT

python - 根据行的先前值填充 NaN

我有一个数据框(样本,不是真实的):df=ABCDEF034NaNNaNNaNNaN198NaNNaNNaNNaN25947NaNNaN35763NaNNaN42643NaNNaN现在我想用行的前几个(!!!)值填充NaN值(用左边现有的几个数字填充Nan并应用于整行)并将其应用于整个数据集。关于填写栏目有很多答案。但在这种情况下我需要根据行进行填充。也有根据其他列填充NaN相关的答案,但是在我的例子中,列数超过2000。这是样本数据期望的输出是:df=ABCDEF03434341989898259474735763634264343 最佳答案

python - 在 Cython 中检查 nan

我正在寻找一种方法来检查Cython代码中的NaN值。目前,我正在使用:ifvalue!=value:#valueisNaNelse:#valueisnotNaN有更好的方法吗?是否可以使用像Numpy的isnan这样的函数? 最佳答案 取自http://groups.google.com/group/cython-users/msg/1315dd0606389416,你可以这样做:cdefexternfrom"math.h":bintisnan(doublex)然后你可以只使用isnan(value)。在较新版本的Cython中,

python - 替换 tensorflow 张量中的 nan 值

我正在使用tensorflow开发卷积神经网络,但遇到了问题。问题是我通过tfrecords读取的输入图像包含一定数量的nan值。原因是图像代表一个深度图,其中有一些无限值,在tfrecord中对其进行编码然后解码以将其提供给网络的过程中,这些无限值变成了nan值。现在,由于在我的情况下,在将原始图像编码到tfrecors之前替换原始图像中的无限值不是一个选项,所以我可以通过任何方式替换我的图像张量中的nan值,作为在我输入之前执行的操作到网上了吗? 最佳答案 tf.where和tf.is_nan的组合应该有效:importtens

python - pandas dataframe 按 nan 数删除列

我有一个数据框,其中一些列包含nan。我想删除那些具有一定数量的nan的列。例如,在下面的代码中,我想删除任何包含2个或更多nan的列。在这种情况下,“C”列将被删除,仅保留“A”和“B”。我该如何实现?importpandasaspdimportnumpyasnpdff=pd.DataFrame(np.random.randn(10,3),columns=list('ABC'))dff.iloc[3,0]=np.nandff.iloc[6,1]=np.nandff.iloc[5:8,2]=np.nanprintdff 最佳答案 d

python - 如何根据数据框的 NAN 百分比删除列?

对于df的某些列,如果该列的80%是NAN。删除此类列的最简单代码是什么? 最佳答案 您可以使用isnull与mean对于阈值,然后按booleanindexing删除列与loc(因为删除列),还需要反转条件-所以表示删除所有列>=0.8:df=df.loc[:,df.isnull().mean()示例:np.random.seed(100)df=pd.DataFrame(np.random.random((100,5)),columns=list('ABCDE'))df.loc[:80,'A']=np.nandf.loc[:5,'

python - 在 python 中使用 numpy 获取避免 nan 的平均值

这个问题在这里已经有了答案:NumPy:calculateaverageswithNaNsremoved(12个答案)关闭9年前。如何避免nan来计算数组(A)的平均值?importnumpyasnpA=[5nannannannan10]M=np.mean(A[A!=nan])doesnotworkAnyidea?

python - pandas dataframe 选择 nan 索引

我有一个包含以下内容的数据框df:In[10]:df.index.unique()Out[10]:array([u'DC',nan,u'BS',u'AB',u'OA'],dtype=object)我可以轻松地选择df.ix["DC"]、df.ix["BS"]等。但是我在选择nan索引时遇到了问题。df.ix[nan],df.ix["nan"],df.ix[np.nan]allwon'twork.如何选择以nan为索引的行? 最佳答案 一种方法是使用df.index.isnull()来识别NaN的位置:In[218]:df=pd.Da

python - 如果 NaN 出现在多列中的任何位置,则删除组

我正在尝试清理我的数据框,如果我的“Base_2007”和“Base_2011”列包含NA,那么我应该完全删除该县。在我的例子中,因为两个县都包含NA,所以它们都将被删除。因此将返回空数据集。有可能做这样的事情吗?数据:StateYearBase_2007Base_2011County0AL2012NaN14.0Alabama_Country1AL201312.020.0Alabama_Country2AL201413.0NaNAlabama_Country3DC2011NaN20.0Trenton4DC201219.0NaNTrenton5DC201320.021.0Trenton6

python - Pandas - 删除只有 NaN 值的行

我有一个包含许多NaN值的DataFrame。我想删除包含太多NaN值的行;具体来说:7个或更多。我尝试了几种使用dropna函数的方法,但很明显它会贪婪地删除包含任何NaN值的列或行。这个问题(SlicePandasDataFramebyRow)告诉我,如果我可以编译一个包含太多NaN值的行的列表,我可以用一个简单的方法将它们全部删除df.drop(rows)我知道我可以使用count函数计算非空值,我可以从总数中减去该函数并以这种方式获得NaN计数(是否有直接的方法来计算NaN值排?)。但即便如此,我也不确定如何编写逐行遍历DataFrame的循环。下面是一些我认为正确的伪代码:#

python - Pandas :ValueError:无法将 float NaN 转换为整数

我得到ValueError:cannotconvertfloatNaNtointeger如下:df=pandas.read_csv('zoom11.csv')df[['x']]=df[['x']].astype(int)“x”是csv文件中的一列,我无法在文件中发现任何floatNaN,而且我不明白错误或为什么会出现错误。当我将该列读取为字符串时,它的值类似于-1,0,1,...2000,对我来说都是非常好的int数字。当我将列读取为float时,就可以加载它了。然后它将值显示为-1.0,0.0等,仍然没有任何NaN-s我尝试在read_csv中使用error_bad_lines=Fa