gpt4 book ai didi

python - 使用逻辑 True/False 聚合对 Pandas DataFrame 重新采样

转载 作者:太空宇宙 更新时间:2023-11-04 00:22:03 24 4
gpt4 key购买 nike

抱歉,如果标题不是很清楚,但我想不出一个好的框架。

我想在每天对 DataFrame 进行重采样时执行一些高级逻辑。

所以我有一个名为 trades 的 DataFrame,如下所示:

                         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,它将是 quantity,其中 buy==True 除以总重采样 quantity 用于 1D

这是给我带来麻烦的最后一点,我可以通过以下方式简单地完成其他两点:

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

关于python - 使用逻辑 True/False 聚合对 Pandas DataFrame 重新采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48774824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com