使用apply(或其他一些矢量化)来执行涉及两个(或更多)数据帧的计算?

时间:2015-03-16 03:28:50

标签: python optimization pandas

我有一个数据框,包含一系列基于地面的仪器的信息(即日期时间索引)。在同一时间我也有许多卫星的卫星位置。这些位置存储在第二数据帧中。根据接收器数据,我做了一些处理,以计算出每个卫星的预测观测结果。然后,得到的数据帧具有n次x个卫星数据点。这是我的可怕和天真的黑客攻击和完全缓慢的当前implmentation。接收器数据在DF'数据中。 DF' sats'中的卫星位置:

data_out = []
time_out = []
for time, state in data.iterrows():
    for stime, row in sats[ sats.index == time].iterrows():
        # Do the calculation given reciever and sat pos and store as dict 'new_row'
        data_out.append(new_row)
        time_out.append(stime)
data_out = pd.DataFrame(data_out,index=time_out)

所以,我不确定如何进行矢量化。天真的我可以将它分成两个apply语句,每个语句都有效地替换每个iterrows调用。但是还有其他一些聪明的方法,因为这个解决方案仍然会有很大的循环开销。

0 个答案:

没有答案