草庐IT

python - 获取具有 NaN 值的所有行

我有一个表,其中有一列包含一些NaN值:ABCD232Nan3455231Nan我想获取D=NaN的所有行。我该怎么做? 最佳答案 创建一个df用于说明(包含Nan)In[86]:df=pd.DataFrame({'a':[1,2,3],'b':[3,4,5],'c':[np.nan,4,5]})In[87]:dfOut[87]:abc013NaN12442355检查哪些索引对于c列为nullIn[88]:pd.isnull(df['c'])Out[88]:0True1False2FalseName:c,dtype:bool检查哪些

python - 级别 NaN 必须与名称相同

我正在尝试使用以下代码计算NaN在数据框的一列中出现的次数:count=enron_df.loc['salary'].count('NaN')但是每次我运行这个我都会得到以下错误:KeyError:'LevelNaNmustbesameasname(None)'我在网上搜索了很多,试图找到解决方案,但无济于事。 最佳答案 如果NaN是missingvalues:enron_df=pd.DataFrame({'salary':[np.nan,np.nan,1,5,7]})print(enron_df)salary0NaN1NaN21.

python - 沿着时间序列索引连接 pandas DataFrame

我有两个较大的(提供了片段)pandasDateFrame,它们具有不相等的日期作为索引,我希望将它们合并为一个:NAB.AXCBA.AXCloseVolumeCloseVolumeDateDate2009-06-0536.5149629002009-06-0821.9502009-06-0436.7955288002009-06-0521.9589170002009-06-0336.8051165002009-06-0422.21187236002009-06-0236.3353037002009-06-0323.11116438002009-06-0136.165625500200

python - 基于 tensorflow 的流式指标的自定义指标返回 NaN

我正在尝试将F1分数定义为TensorFlow中用于DNNClassifier的自定义指标。为此,我编写了一个函数defmetric_fn(predictions=[],labels=[],weights=[]):P,_=tf.contrib.metrics.streaming_precision(predictions,labels)R,_=tf.contrib.metrics.streaming_recall(predictions,labels)ifP+R==0:return0return2*(P*R)/(P+R)使用来自TensorFlow的streaming_precisio

python - 对 pandas DataFrame 中的空值使用 None 而不是 np.nan

我有一个包含混合数据类型的pandasDataFrame。我想用None替换所有空值(而不是默认的np.nan)。出于某种原因,这似乎几乎是不可能的。实际上我的DataFrame是从csv中读入的,但这里有一个简单的DataFrame混合数据类型来说明我的问题。df=pd.DataFrame(index=[0],columns=range(5))df.iloc[0]=[1,'two',np.nan,3,4]我做不到:>>>df.fillna(None)ValueError:mustspecifyafillmethodorvalue也不是:>>>df[df.isnull()]=NoneT

python - 过滤掉特定列中的 nan 行

df=Col1Col2Col31nan425433nan给定数据框df,我想获取一个新的数据框df2,它在列Col2nan/。这是预期的结果:df2=Col1Col2Col325433nan我知道可以使用pandas.isnull和dropna,但是如何仅指定应应用过滤的特定列? 最佳答案 你可以使用DataFrame.dropna()方法:In[202]:df.dropna(subset=['Col2'])Out[202]:Col1Col2Col3125.04.0233.0NaN或(在这种情况下)不那么惯用Series.notnu

python - 为什么 "None in numpy.asarray(...)"会导致 future 的警告

当你做这样的事情时,future的警告会发生:>>>numpy.asarray([1,2,3,None])==None目前返回False,但我知道在Numpy的future版本中将返回一个包含[False,False,False,True]的数组。讨论onthenumpydiscussionlist解决这个问题的方法是测试aisNone。让我感到困惑的是in关键字与一维数组相比列表的这种行为:>>>Nonein[1,2,3,None]True>>>Noneinnumpy.asarray([1,2,3,None])__main__:1:FutureWarning:comparisonto

python Pandas : selecting rows whose column value is null/None/nan

这个问题在这里已经有了答案:HowtoselectrowswithoneormorenullsfromapandasDataFramewithoutlistingcolumnsexplicitly?(6个答案)关闭6年前。如何选择列中值为none的DataFrame的那些行?我已将这些编码为np.nan,但无法与此类型匹配。In[1]:importnumpyasnpIn[2]:importpandasaspdIn[3]:df=pd.DataFrame([[1,2,3],[3,4,None]])In[4]:dfOut[4]:0120123.0134NaNIn[5]:df=df.filln

python - 找到第一个 np.nan 值位置的最有效方法是什么?

考虑数组aa=np.array([3,3,np.nan,3,3,np.nan])我能做到np.isnan(a).argmax()但这需要找到所有np.nan才能找到第一个。有没有更有效的方法?我一直在尝试弄清楚我是否可以将参数传递给np.argpartition,这样np.nan就会排在最前面而不是最后。关于[dup]的编辑。这个问题之所以不同,有几个原因。该问题和答案涉及值(value)观的平等。这是关于isnan的。这些答案都遇到了我的答案所面临的同样问题。请注意,我提供了一个完全有效的答案,但强调了它的效率低下。我希望解决效率低下的问题。关于第二个[dup]的编辑。仍在解决平等问

python - Pandas 将 NaN 替换为 None 表现出违反直觉的行为

给定一个序列s=pd.Series([1.1,1.2,np.nan])s01.111.22NaNdtype:float64如果需要将NaN转换为None(例如,使用Parquet),那么我想要01.111.22Nonedtype:object我假设Series.replace是执行此操作的明显方法,但函数返回的内容如下:s.replace(np.nan,None)01.111.221.2dtype:float64NaN被向前填充,而不是被替换。通过docs,我看到如果第二个参数是None,那么第一个参数应该是一个字典。基于此,我希望replace要么按预期替换,要么抛出异常。我相信这里