我有一个函数可以接收两个数据帧,一个是价格数据,另一个是数据数据,整齐有序等。
在某些时候,由于数据错误,大多数列的卷将为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)]
答案 0 :(得分:1)
您可以使用pandas "concat" mehtod,并根据价格数据帧的索引将两个数据帧合并到一个新的数据帧中。
New_data_frame = pd.concat([df_price, df_volume], axis=1, join_axes=[df_price.index])
在新的data_frame中,价格和数量框架的条目将根据价格数据框的索引出现。