我有一个DataFrame如下:
mydf = pd.DataFrame({'Name1':(4.2, 0.3), 'Name2':(0.2, 4.2), 'Name3':(3.3, 5.5)}, index=('Val1', 'Val2'))
如何删除任何项目的值< 1?
答案 0 :(得分:1)
这会选择所有元素都为>=1
的列(其中任何元素的补码小于1):
mydf.ix[:, ~(mydf<1).any()]
Out[9]:
Name3
Val1 3.3
Val2 5.5
答案 1 :(得分:1)
使用dropna的另一个解决方案是:
df
Out[34]:
Name1 Name2 Name3
Val1 4.2 0.2 3.3
Val2 0.3 4.2 5.5
In [35]: df[df<1]=np.nan
In [36]: df
Out[36]:
Name1 Name2 Name3
Val1 4.2 NaN 3.3
Val2 NaN 4.2 5.5
In [37]: df.dropna(axis=1,how='any',inplace=True)
In [38]: df
Out[38]:
Name3
Val1 3.3
Val2 5.5