2017-05-31 109 views
1

丟棄的行我有一個接收兩個dataframes,價格數據之一,數據量的一個,整齊的結構等匹配的熊貓數據幀

在某些點的功能,體積會NaN對於大多數的列由於數據錯誤。這將通過簡單地丟棄這些南行來處理。

在我的功能,它看起來如下:

self.allData = dbfetch.dfcreator(year,mrange).get() 

其中該返回包含了我剛纔描述的兩個dataframes的元組。我可以做的旁邊是那麼當然寫:

self.volFrame = self.allData[0].dropna(thresh=9) 

其中9個缺失觀察是當數據是如此糟糕的規則,我要刪除的enire行。

但是,我的問題是,現在我有兩個不匹配的數據框需要是相同數量的行。它們是由單獨的列索引的,它們來自SQL數據庫的結構。

有沒有什麼方法可以告訴另一個數據幀,如果日期列之間不匹配,然後將多餘的那些放在價格框架中。或者達到相同目的的東西?

感謝Pankaj給我解答我的問題的答案。但是,我以不同的方式解決了最後一步。如果任何人的興趣,我的繼承人的解決方案:

allData = dbfetch.dfcreator(year,month).get() 
    p = allData[0]; pCols = p.columns 
    v = allData[1].dropna(thresh=9); vCols = v.columns  
    df = pd.concat([p, v], axis=1, join_axes=[v.index]) 
    self.priceData = df[list(pCols)] 
    self.volData = df[list(vCols)] 

回答

1

您可以使用熊貓"concat" mehtod並根據價格數據幀的指數兩個dataframes加入到一個新的數據幀。

New_data_frame = pd.concat([df_price, df_volume], axis=1, join_axes=[df_price.index]) 

在新的data_frame中,價格和體積數據框的條目將根據價格數據框的索引存在。

+0

我是否可以提取每個df的列名的元組,以便我可以將它重新分成兩個單獨的df,一旦我強制它們具有相同的索引? –

+0

您可以使用熊貓的isin()函數來提取如下列:'df_volume [df_volume ['date']。isin(df_price ['date'])]' – Pankaj