2017-06-10 189 views
-2

是否有任何方法只從數據集中刪除'nan'而不刪除包含'nan'的整個行或列?我試過了下面的代碼,但結果並不是我想要的。在數據框中刪除'NaN'值

df = pd.read_csv('...csv') 
df.stack() 

這裏是CSV

enter image description here

的一部分,這裏是 '.STACK()'

enter image description here

標題是夾雜了實際數據後, 。我不想被混淆!

+0

什麼是去除您的數據幀中的NaN元素的目的是什麼?是計算某種類型的統計量(例如平均值,標準差)? –

回答

0

您可以使用:

df.fillna('') 

這將填補NA爲空字符串 ''。或者你可以隨心所欲填充它。

0

使用dropna與條件。

nan vlaue不等於自己。


可以使用刪除列或行,

柱:del df.column_name

行:df.drop([row_index])

0

考慮數據框df

df = pd.DataFrame(np.arange(9).reshape(3, 3)) 
df.iloc[1, 1] = np.nan 
print(df) 

    0 1 2 
0 0 1.0 2 
1 3 NaN 5 
2 6 7.0 8 

可以刪除只是中間的細胞,但只有當我們stack

df.stack() 

0 0 0.0 
    1 1.0 
    2 2.0 
1 0 3.0 
    2 5.0 
2 0 6.0 
    1 7.0 
    2 8.0 
dtype: float64 
+0

不起作用!我有一個標題。當我將它轉換爲系列時,我需要將其轉換回數據框,問題在於轉換後,標題將與其他數據混合在一起,這些數據並不好! – user8034918

+0

它確實有效。我證明了它的確如此。問題是,你沒有告訴我們你想要它的樣子。在你的腦海裏,放下一個na而不放下這行的樣子是什麼樣的? – piRSquared

+0

您可以再次檢查初始代碼,以查看應用堆棧()後我正在討論什麼樣的問題。 – user8034918