【发布时间】:2019-09-13 15:47:30
【问题描述】:
我有两个 DataFrame:
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,我想添加有关从“日期 - 60 秒”到“日期”的 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 行的数据帧
【问题讨论】:
标签: python pandas dataframe join