我有两个数据帧:
date value
2019-09-12 17:10:31 1
2019-09-12 17:10:31 0.5
2019-09-12 17:10:35 2
2019-09-12 17:10:36 1
. .
. .
. .
第二个是:
date1 value1
2019-09-12 17:10:22 0.2
2019-09-12 17:10:24 0.3
2019-09-12 17:10:30 0.002
2019-09-12 17:10:46 0.11
. .
. .
. .
在第一个df中,我想添加一个列,其中包含从“date-60秒”到“date”的value1的和的信息。我做了这样的事:
def volume_traded(df, interval, df1):
return df.date.apply(lambda x: get_volume_in_interval(x, interval, df1))
def get_volume_in_interval(time, interval, df1):
temp = df1[(df1.date1 < time) & (df1.date1 > time -
datetime.timedelta(seconds=interval))]
return temp.value.sum()
这个解决方案非常慢(我说的是大约有20-50k行的数据帧)
使用
numpy
广播相关问题 更多 >
编程相关推荐