Python 使用逻辑真/假聚合对数据帧重新采样
对不起,如果标题不是很清楚,但我想不出一个好的方式来框架它 我想在每天对数据帧重新采样时做一些高级逻辑 因此,我有一个名为Python 使用逻辑真/假聚合对数据帧重新采样,python,pandas,aggregate,resampling,Python,Pandas,Aggregate,Resampling,对不起,如果标题不是很清楚,但我想不出一个好的方式来框架它 我想在每天对数据帧重新采样时做一些高级逻辑 因此,我有一个名为的数据框架,如下所示: agg_tradeid price quantity fst_tradeid \ timestamp 2017-12-08 06:03:13.653
的数据框架,如下所示:
agg_tradeid price quantity fst_tradeid \
timestamp
2017-12-08 06:03:13.653 0 0.00023 100.0 0
2017-12-08 06:08:00.292 1 0.00030 1999.0 1
2017-12-08 06:09:05.218 2 0.00035 3339.0 2
2017-12-08 06:09:17.911 3 0.00035 206.0 3
2017-12-08 06:10:13.633 4 0.00033 1533.0 4
lst_tradeid timestamp buy best_price
timestamp
2017-12-08 06:03:13.653 0 1512712993653 True True
2017-12-08 06:08:00.292 1 1512713280292 True True
2017-12-08 06:09:05.218 2 1512713345218 False True
2017-12-08 06:09:17.911 3 1512713357911 False True
2017-12-08 06:10:13.633 4 1512713413633 False True
我想以一种有点复杂的方式重新采样到每日('1D'
)
价格:ohlc
数量:总和
- 创建一个新列,
ract
,该列将是1D
的数量
,其中buy==True
除以重新采样的数量
这是给我带来麻烦的最后一点,我可以简单地用以下方法完成另外两项:
trades.resample('1D').agg({'price':'ohlc', 'quantity':'sum'})
您可以使用临时变量单独计算ract,并将结果分配回:
i = df.assign(v=df.quantity.where(df.buy))\
.resample('1D')[['v', 'quantity']]\
.sum()
j = df.resample('1D').agg({'price':'ohlc', 'quantity':'sum'})
j['ract'] = i.v / i.quantity
j
price quantity ract
open high low close quantity
timestamp
2017-12-08 0.00023 0.00035 0.00023 0.00033 7177.0 0.292462
当有多个买进=真条件时,当重采样时,你会考虑什么?对于期望的时间段(即代码>购买==真值< /代码>的所有<代码>数量<代码>的总和,在期望的时间段除以所有的代码>数量< /代码>的总和(不管<代码>购买< /代码>变量)谢谢,这很有帮助。编辑了我的答案。太好了,就是这个。非常感谢。