无法删除NaN大于2的行

时间:2019-04-11 06:46:57

标签: python pandas

我有一个包含NaN的df,我尝试运行df.dropna(),它会删除所有具有NaN值的行,但是当我尝试使用df.dropna(thresh = 2)时,则什么也没有发生,没有行得到已删除。有人可以解释一下为什么会这样吗。

这就是我将值更改为NaN的方式

for col in df.columns:       df.loc[df[col] == '?', col] = np.nan

It is the the pic with total number of rows and Columns

second pic when I used df.dropna()

third pic is after using df.dropna(thresh=2)

2 个答案:

答案 0 :(得分:1)

thresh = 2表示该行必须至少具有2个有效/非NaN值,否则将删除该行。 在给定的屏幕截图中,有13列。 因此,要删除行数大于2 Nan的行,脱粒应该为thresh = 11。 这样,熊猫会将发现超过2个NaN的所有行移动到

希望这会有所帮助!

答案 1 :(得分:-1)

据我所知,thresh适用于整数值。如果只有整数,剩下的是NaN并且阈值应大于1,则它将响应。

import pandas as pd
data = [{'id':1,'name' : 'John'},
        {'id':2, 'name' : 'Aaron', 'phone':43242123213,'age':32},
        {'id':3, 'name':'alan' }
        ]

df = pd.DataFrame(data)

OUTPUT:
    age  id   name         phone
0   NaN   1   John           NaN
1  32.0   2  Aaron  4.324212e+10
2   NaN   3   Alan           NaN

>> df.dropna(thresh=2)

它不起作用,但是如果我删除索引2的名称“ Alan”,它将响应并删除第三行3,仅保留整数ID。