2012-05-23 50 views
0
In [139]: pandas.__version__ 
Out[139]: '0.7.3' 

我有兩個對齊的系列DataFrame有幾個不匹配的「NaN」。我想打印它們之間的交叉點,刪除所有「NaN」,但沒有鬆散對齊。也就是說,我想刪除這兩個系列中的行,我在其中找到了一個「NaN」。這聽起來很簡單,但是我並沒有在系列之間做任何操作,以至後來不能從系列中分開。我找不到合適的df功能來做到這一點 - 有些沒有記錄。 只是一個例子,我想借此:打印內部系列

10   NaN  -1.200 
11   NaN  -1.324 
12 0.000585  NaN 
13 0.000573  -1.453 
14   NaN  -2.006 

和打印:

13 0.000573  -1.453 
+1

這有點難以遵循。爲什麼不是df.dropna()你想要什麼?你有沒有嘗試過上面的DataFrame? – Karmel

+0

你的意思是dropna的df完全?它可能有更好的方法。這是一個非常大的數據集。 – fred

+0

但是,這不正是你想要做的?如果不是那樣,你在描述什麼?您還可以使用「subset」參數指定特定的列子集:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html#pandas.DataFrame.dropna – Karmel

回答

1

正如我在我上面的評論中寫道,最好的回答是:

newdf = df1.dropna()[['S', 'JEXP']] 

那從原始df的一片片落下,保持了一系列的興趣。 卡梅爾曾建議:

newdf = df1.dropna(subset=['S', 'JEXP']) 

但也可以工作,並基於該子集列表dropan的,保持所有其他系列 - 這將對您的數據集。