python – 如何选择不仅包含NaN值和0的行
发布时间:2020-12-20 11:59:56 所属栏目:Python 来源:网络整理
导读:这是我的数据帧: cols = ['Country','Year','Orange','Apple','Plump']data = [['US',2008,17,29,19],['US',2009,11,12,16],2010,14,16,38],['Spain',None,33],19,17],['France',21],22,13],0],['Italy',None],15,2011,42,None]] 我想选择橙色苹果和丰满不
这是我的数据帧:
cols = ['Country','Year','Orange','Apple','Plump'] data = [['US',2008,17,29,19],['US',2009,11,12,16],2010,14,16,38],['Spain',None,33],19,17],['France',21],22,13],0],['Italy',None],15,2011,42,None]] 我想选择橙色苹果和丰满不仅仅由“无”组成的行,只有0或混合它们.所以结果输出应该是: Country Year Orange Apple Plump 0 US 2008 17.0 29.0 19.0 1 US 2009 11.0 12.0 16.0 2 US 2010 14.0 16.0 38.0 3 Spain 2008 11.0 NaN 33.0 4 Spain 2009 12.0 19.0 17.0 5 France 2008 17.0 19.0 21.0 6 France 2009 19.0 22.0 13.0 7 France 2010 12.0 11.0 0.0 10 Italy 2010 15.0 16.0 17.0 12 Italy 2011 42.0 NaN NaN 其次,我想放弃我三年没有观察到的国家.因此产生的产出应该只包括我们和法国.我怎么能得到它们? df = df[(df['Orange'].notnull())| (df['Apple'].notnull()) | (df['Plump'].notnull()) | (df['Orange'] != 0 )| (df['Apple']!= 0) | (df['Plump']!= 0)] 我也尝试过: df = df[((df['Orange'].notnull())| (df['Apple'].notnull()) | (df['Plump'].notnull())) & ((df['Orange'] != 0 )| (df['Apple']!= 0) | (df['Plump']!= 0))] 解决方法In [307]: df[~df[['Orange','Plump']].fillna(0).eq(0).all(1)] Out[307]: Country Year Orange Apple Plump 0 US 2008 17.0 29.0 19.0 1 US 2009 11.0 12.0 16.0 2 US 2010 14.0 16.0 38.0 3 Spain 2008 11.0 NaN 33.0 4 Spain 2009 12.0 19.0 17.0 5 France 2008 17.0 19.0 21.0 6 France 2009 19.0 22.0 13.0 7 France 2010 12.0 11.0 0.0 10 Italy 2010 15.0 16.0 17.0 12 Italy 2011 42.0 NaN NaN (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |