我正在使用的数据框有一个年龄列,称为年龄。 age列中的条目是无意义的,因为它的值大于101且小于1。age列也具有空条目。
我想删除无效年龄的行。 然后,我想用剩余的平均年龄填充空条目。
df = df[(df.age <102) & (df.age > 0)]
当我这样做时,它不仅会丢弃无意义的年龄,还会丢弃空条目。我考虑过先填充均值,但我不想包含无意义的年龄并曲解均值。
答案 0 :(得分:0)
这至少可以通过两种方式完成:
方法一:
还保留面具中的nan
个值:
df = df[((df.age <102) & (df.age > 0))|(df.age.isnull())]
,然后填写nan
值:
df = df.fillna(df.age.mean())
方法二:
通过仅在屏蔽的数据帧上应用nan
来填充mean
值:
df = df.fillna(df[((df.age <102) & (df.age > 0))]["age"].mean())
然后套上面具:
df = df[((df.age <102) & (df.age > 0))]