筛选值小于0的dataframe的行

我有一个像这样的数据框

df=pd.DataFrame(数据=[[21,1]、[32,4]、-4,14]、[3,17]、-7,NaN]],列=['a'、[b'])
df

我希望能够删除列列表中所有具有负值的行,并使用NaN保存行

在我的示例中,只有2列,但我的数据集中有更多的列,所以我无法逐个完成

如果要将其应用于所有列,请使用dropna()执行df[df>0]

&gt&燃气轮机&燃气轮机;df[df>0].dropna()
a b
0  21   1
3   3  17

如果您知道要将其应用于哪些列,则只对那些具有df[df[cols]>0]的列执行以下操作:

&gt&燃气轮机&燃气轮机;cols=['b']
&燃气轮机&燃气轮机&燃气轮机;df[cols]=df[df[cols]>0][cols]
&燃气轮机&燃气轮机&燃气轮机;df.dropna()
a b
0  21   1
2  -4  14
3   3  17

发表评论