我有一个包含以下内容的数据框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
我正在尝试清理我的数据框,如果我的“Base_2007”和“Base_2011”列包含NA,那么我应该完全删除该县。在我的例子中,因为两个县都包含NA,所以它们都将被删除。因此将返回空数据集。有可能做这样的事情吗?数据:StateYearBase_2007Base_2011County0AL2012NaN14.0Alabama_Country1AL201312.020.0Alabama_Country2AL201413.0NaNAlabama_Country3DC2011NaN20.0Trenton4DC201219.0NaNTrenton5DC201320.021.0Trenton6
我有一个包含许多NaN值的DataFrame。我想删除包含太多NaN值的行;具体来说:7个或更多。我尝试了几种使用dropna函数的方法,但很明显它会贪婪地删除包含任何NaN值的列或行。这个问题(SlicePandasDataFramebyRow)告诉我,如果我可以编译一个包含太多NaN值的行的列表,我可以用一个简单的方法将它们全部删除df.drop(rows)我知道我可以使用count函数计算非空值,我可以从总数中减去该函数并以这种方式获得NaN计数(是否有直接的方法来计算NaN值排?)。但即便如此,我也不确定如何编写逐行遍历DataFrame的循环。下面是一些我认为正确的伪代码:#
我得到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
我在下面写了一个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数组中的零?
当我的一些数据包含“非数字”值时,我在制作直方图时遇到了问题。我可以通过使用numpy中的nan_to_num来消除错误,但是我得到了很多零值,这也弄乱了直方图。pylab.figure()pylab.hist(numpy.nan_to_num(A))pylab.show()所以我们的想法是制作另一个数组,其中所有nan值都消失了,或者只是以某种方式在直方图中屏蔽它们(最好使用一些内置方法)。 最佳答案 使用A[~np.isnan(A)]从数组中删除np.nan值,这将选择A中的所有条目>哪些值不是nan,因此在计算直方图时将排除它
我正在尝试学习Pandas,但我一直对以下内容感到困惑。我想用行平均值替换DataFrame中的NaN。因此,像df.fillna(df.mean(axis=1))这样的东西应该可以工作,但由于某种原因它对我来说失败了。我错过了什么,我在做什么有问题吗?是因为没有实现吗?见linkhereimportpandasaspdimportnumpyasnppd.__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
考虑列表列表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
我有一个DataFrame,当特定变量具有NaN时,我想在其中保留行值并删除非缺失值。例子:tickeropinionx1x2aaplGC10070msftNaN5040googGC4060wmtGC4515abmNaN8090在上面的DataFrame中,我想删除所有未丢失意见的观察结果(因此,我想删除代码为aapl,goog,andwmt的行)。pandas中是否有与.dropna()相反的东西?? 最佳答案 使用pandas.Series.isnull在列上查找缺失值并用结果建立索引。importpandasaspddata=
我正在尝试将低于阈值的数组成员设置为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