2017-04-21 55 views
1

我正在使用Python执行数据清理任务,其中包含具有缺少数据(布尔值)的列的数据使用布尔值处理丢失列中的数据值(1,0)Python

示例:df = [1,0,1,0,NaN,1,0,NaN)

我试过df.fillna(df.mean())但这会给我意味着1和0的“NaN”的地方。 未经处理,分析将不会完成。 请指教。

+0

什么是所需的输出? – jezrael

+0

我必须处理这个“NaN”值,因为我有多个像这样的列有缺失值的列,我应该消除这些行还是解决这个数据问题的任何方法 – iahmed

+0

我认为jezreal问你是否希望用NaN值替换NaN值特别是价值。如果你想用NaN删除行,那么你应该看看[dropna](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html) – Clusks

回答

0

我想滚动可能解决这个问题,将采取最高在2所示的窗口:

df=pd.DataFrame([1,0,1,0,np.nan,1,0,np.nan]) 

df.fillna(0).rolling(window=2,min_periods=1).max()

+0

它真的很奏效谢谢你.. :-)你能解释一下逻辑吗,现在没有缺失值但想要了解逻辑 – iahmed

+0

1-填充所有NaN值为0. 2-取当前行的窗口和上面的1行 3-计算每个窗口的最大值 请注意那么生成的数据框应该只用于填充NaN值,因为它可能会覆盖一些非NaN值 – lsalamon

+0

如果我们覆盖非空的值,那么哪个是错误的,请告知,而不触及现有值不能我们只给这样的值只为缺少的数据。谢谢 – iahmed