我有一个包含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
答案 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。