2017-05-31 110 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