2017-07-31 55 views
-1

我有這樣的數據框。如果它是在Python中的數據幀中的NaN,則刪除單元格

Project 4 Project1 Project2 Project3 
0 NaN   laptio   AB  NaN 
1 NaN   windows   ten  NaN 
0 one   NaN    NaN 
1 two   NaN    NaN 

我想從項目4列刪除NaN值

我的期望輸出應該是,

DF,

Project 4 Project1 Project2 Project3 
0 one   laptio   AB  NaN 
1 two   windows   ten  NaN 
0     NaN  NaN  NaN 
1    NaN   NaN 
+1

的可能的複製[刪除的NaN '細胞' 不丟棄整個ROW(熊貓,Python3)](https://stackoverflow.com/questions/25941979/remove-nan-cells-without-dropping-the -entire-row-pandas-python3) – error

+0

「Project3」列中的第三個'NaN'來自哪裏?和具有空表示的單元格我猜包含空字符串? – Goyo

+0

是@Goyo,下面的答案爲我工作。謝謝 – pyd

回答

2

如果您的數據幀的索引僅僅是標準的0〜 n有序整數,您可以將Project4列彈出一系列值,刪除NaN值,重置索引,然後將其合併回數據幀。

import pandas a pd 

df = pd.DataFrame([[pd.np.nan, 1,2,3], 
        [pd.np.nan, 4,5,6], 
        ['one',7,8,9], 
        ['two',10,11,12]], columns=['p4','p1','p2','p3']) 

s = df.pop('p4') 
pd.concat([df, ps.dropna().reset_index(drop=True)], axis=1) 

# returns: 
    p1 p2 p3 p4 
0 1 2 3 one 
1 4 5 6 two 
2 7 8 9 NaN 
3 10 11 12 NaN 
+0

我可以嘗試追加而不是concat這個dropna() – pyd