2015-11-09 89 views
2

這是我有數據幀:熊貓dropna,哪些行被丟棄

    A   B   C D F E 
2013-01-01 0.000000 0.000000 0.100928 5 NaN 1 
2013-01-02 0.640525 0.220630 1.070226 5 1 1 
2013-01-03 -0.963793 -0.476044 -0.581649 5 2 NaN 
2013-01-04 0.882686 -0.371904 -1.320758 5 3 NaN 
2013-01-05 0.021979 0.680987 -0.605329 5 4 NaN 
2013-01-06 -0.238726 -0.487410 -0.383292 5 5 NaN 

我然後運行下面的代碼:df1.dropna(how='any'),其中df1是上述數據幀。事後我看到df1,這就是我所得到的。

    A   B   C D F E 
2013-01-01 0.000000 0.000000 0.100928 5 NaN NaN 
2013-01-02 0.640525 0.220630 1.070226 5 1 NaN 
2013-01-03 -0.963793 -0.476044 -0.581649 5 2 NaN 
2013-01-04 0.882686 -0.371904 -1.320758 5 3 NaN 

我認爲dropna下降已經在這一個NaN值的任何行。因此,我期待它回到這裏:

    A   B   C D F E 
2013-01-02 0.640525 0.220630 1.070226 5 1 1 

爲什麼不是這種情況?

編輯:這裏是代碼

這是我開始:

dates = pd.date_range('20130101',periods=6) 
df = pd.DataFrame(np.random.randn(6,4),index=dates,columns = list('ABCD')) 

那麼我這樣做:

s1 = pd.Series([1,2,3,4,5,6],index=pd.date_range('20130102',periods=6)) 
df['F'] = s1 
df.at[dates[0],'A'] = 0 
df.iat[0,1] = 0 
df.loc[:,'D'] = np.array([5]*len(df)) 
df1 = df.reindex(index=dates[0:4], columns = list(df.columns) + ['E']) 
df1.loc[dates[0]:dates[1],'E'] = 1 

,然後我運行dropna

+2

發表完整的代碼顯示df創建也,因爲我不能再現這 – EdChum

+0

檢查上面。我想這就是我跑過的所有東西 –

+0

@EdChum複製我平方公佈的數據並用'pandas.read_clipboard()創建你的DataFrame「 –

回答

2

dropna返回一個新的DataFrame。因此,讓你在找你必須添加

df2 = df1.dropna(how='any'); 

現在df2擁有所需的輸出結果。如果你想df1有THR效果,請使用:

df1.dropna(how='any', inplace=True) 

它修改df1就地。 希望這有助於!