草庐IT

python - 用 nan 替换 NumPy 整数数组中的零

我在下面写了一个python脚本:importnumpyasnparr=np.arange(6).reshape(2,3)arr[arr==0]=['nan']printarr但是我得到了这个错误:Traceback(mostrecentcalllast):File"C:\Users\Desktop\test.py",line4,inarr[arr==0]=['nan']ValueError:invalidliteralforlong()withbase10:'nan'[Finishedin0.2swithexitcode1]如何用nan替换NumPy数组中的零?

python - pylab直方图去掉nan

当我的一些数据包含“非数字”值时,我在制作直方图时遇到了问题。我可以通过使用numpy中的nan_to_num来消除错误,但是我得到了很多零值,这也弄乱了直方图。pylab.figure()pylab.hist(numpy.nan_to_num(A))pylab.show()所以我们的想法是制作另一个数组,其中所有nan值都消失了,或者只是以某种方式在直方图中屏蔽它们(最好使用一些内置方法)。 最佳答案 使用A[~np.isnan(A)]从数组中删除np.nan值,这将选择A中的所有条目>哪些值不是nan,因此在计算直方图时将排除它

python - Pandas 数据框 : Replacing NaN with row average

我正在尝试学习Pandas,但我一直对以下内容感到困惑。我想用行平均值替换DataFrame中的NaN。因此,像df.fillna(df.mean(axis=1))这样的东西应该可以工作,但由于某种原因它对我来说失败了。我错过了什么,我在做什么有问题吗?是因为没有实现吗?见linkhereimportpandasaspdimportnumpyasnp​pd.__version__Out[44]:'0.15.2'In[45]:df=pd.DataFrame()df['c1']=[1,2,3]df['c2']=[4,5,6]df['c3']=[7,np.nan,9]dfOut[45]:c1

python - 有效地将不均匀的列表列表转换为用 nan 填充的最小包含数组

考虑列表列表ll=[[1,2,3],[1,2]]如果我将其转换为np.array,我将得到一个一维对象数组,第一个位置为[1,2,3]并且[1,2]在第二个位置。print(np.array(l))[[1,2,3][1,2]]我想要这个print(np.array([[1,2,3],[1,2,np.nan]]))[[1.2.3.][1.2.nan]]我可以用循环来做到这一点,但我们都知道循环有多不受欢迎defbox_pir(l):lengths=[iforiinmap(len,l)]shape=(len(l),max(lengths))a=np.full(shape,np.nan)fo

python - 保留 NaN 值并丢弃非缺失值

我有一个DataFrame,当特定变量具有NaN时,我想在其中保留行值并删除非缺失值。例子:tickeropinionx1x2aaplGC10070msftNaN5040googGC4060wmtGC4515abmNaN8090在上面的DataFrame中,我想删除所有未丢失意见的观察结果(因此,我想删除代码为aapl,goog,andwmt的行)。pandas中是否有与.dropna()相反的东西?? 最佳答案 使用pandas.Series.isnull在列上查找缺失值并用结果建立索引。importpandasaspddata=

python - numpy 数组与 nan 与标量的不等式比较

我正在尝试将低于阈值的数组成员设置为nan。这是QA/QC流程的一部分,传入数据可能已经有nan槽。例如,我的阈值可能是-1000,因此我想在以下数组中将-3000设置为nanx=np.array([np.nan,1.,2.,-3000.,np.nan,5.])以下内容:x[x产生正确的行为,还有一个RuntimeWarning,但是禁用警告的开销warnings.filterwarnings("ignore")...warnints.resetwarnings()有点重,可能有点不安全。尝试使用如下花式索引进行两次索引不会产生任何效果:nonan=np.where(~np.isnan

python - 使用 ix 或 iloc 检查 pandas DataFrame 中的特定值(在单元格中)是否为 NaN 不工作

假设我有以下pandasDataFrame:importpandasaspddf=pd.DataFrame({"A":[1,pd.np.nan,2],"B":[5,6,0]})看起来像:>>>dfAB01.051NaN622.00第一个选项我知道一种检查特定值是否为NaN的方法,如下所示:>>>df.isnull().ix[1,0]True第二个选项(无效)我认为下面的选项,使用ix,也可以工作,但事实并非如此:>>>df.ix[1,0]==pd.np.nanFalse我也尝试了iloc,结果相同:>>>df.iloc[1,0]==pd.np.nanFalse但是,如果我使用ix或il

python - pandas 结合两个字符串忽略 nan 值

我有两列字符串。我想将它们结合起来并忽略nan值。这样:ColA,Colb,ColA+ColBstrstrstrstrstrnanstrnanstrstr我试过df['ColA+ColB']=df['ColA']+df['ColB']但如果任一列为nan,则会创建一个nan值。我也考虑过使用concat。我想我可以继续这样做,然后使用一些df.ColA+ColB[df[ColA]=nan]=df[ColA]但这似乎是解决方法。 最佳答案 调用fillna并传递一个空的str作为填充值,然后传递sum参数axis=1:In[3]:df

python - 如何用 1 替换数据帧的所有非 NaN 条目,用 0 替换所有 NaN

我有一个包含71列和30597行的数据框。我想用1替换所有非nan条目,用0替换nan值。最初我尝试对数据帧的每个值进行for循环,这花费了太多时间。然后我使用了data_new=data.subtract(data)这意味着将数据帧的所有值减去自身,以便我可以使所有非空值都为0。但是由于数据框有多个字符串条目而发生错误。 最佳答案 可以取df.notnull()的返回值,即False,其中DataFrame包含NaN和True否则将其转换为整数,在DataFrame为NaN时为您提供0否则为1:newdf=df.notnull()

python - 如何检查unittest中的值是否为nan?

我有函数,有时使用float('nan')返回NaN(我没有使用numpy)。我该如何为它编写测试,因为assertEqual(nan_value,float('nan'))就像float('nan')==float('nan')总是假的。是否有类似assertIsNan的东西?我找不到任何关于它的信息…… 最佳答案 我想到了assertTrue(math.isnan(nan_value)) 关于python-如何检查unittest中的值是否为nan?,我们在StackOverflow