匹配Pandas Dataframe中丢弃的行

时间:2017-05-31 08:58:56

标签: python pandas

我有一个函数可以接收两个数据帧,一个是价格数据,另一个是数据数据,整齐有序等。

在某些时候,由于数据错误,大多数列的卷将为NaN。这将通过简单地丢弃这些纳米行来处理。

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

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

这会返回包含我刚刚描述的两个数据帧的元组。接下来我要做的就是编写:

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 个答案:

答案 0 :(得分:1)

您可以使用pandas "concat" mehtod,并根据价格数据帧的索引将两个数据帧合并到一个新的数据帧中。

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

在新的data_frame中,价格和数量框架的条目将根据价格数据框的索引出现。