使用 datetime 和 pandas 进行条件计算
Doing conditional calculations with datetime and pandas
我有一些交易数据,如图所示。
一个瞬间可以有多个条目。我想在每个时刻根据 PRICE 和 SIZE 进行一些计算。我想做类似的事情:
total_size = eur_jpy_order.groupby(['TIMESTAMP', 'BUY_SELL_FLAG']).sum()
avg_price = eur_jpy_order.groupby(['TIMESTAMP', 'BUY_SELL_FLAG']).mean()
然后只使用带有 TIMESTAMP、BUY_SELL_FLAG、total_size 和 avg_price 的数据帧,每个时间步都有一个条目。我找不到一个简单的方法来做到这一点。谁能给点建议?
我想你可以使用 agg
:
>>> eur_jpy_order
BUY_SELL_FLAG PRICE SIZE
TIMESTAMP
1 1 10 10
1 1 20 20
1 1 30 30
1 2 40 40
>>> eur_jpy_order.groupby(['TIMESTAMP', 'BUY_SELL_FLAG']) \
.agg(total_size=('SIZE', 'sum'),
avg_price=('PRICE', 'mean'))
total_size avg_price
TIMESTAMP BUY_SELL_FLAG
1 1 60 20.0
2 40 40.0
我有一些交易数据,如图所示。
total_size = eur_jpy_order.groupby(['TIMESTAMP', 'BUY_SELL_FLAG']).sum()
avg_price = eur_jpy_order.groupby(['TIMESTAMP', 'BUY_SELL_FLAG']).mean()
然后只使用带有 TIMESTAMP、BUY_SELL_FLAG、total_size 和 avg_price 的数据帧,每个时间步都有一个条目。我找不到一个简单的方法来做到这一点。谁能给点建议?
我想你可以使用 agg
:
>>> eur_jpy_order
BUY_SELL_FLAG PRICE SIZE
TIMESTAMP
1 1 10 10
1 1 20 20
1 1 30 30
1 2 40 40
>>> eur_jpy_order.groupby(['TIMESTAMP', 'BUY_SELL_FLAG']) \
.agg(total_size=('SIZE', 'sum'),
avg_price=('PRICE', 'mean'))
total_size avg_price
TIMESTAMP BUY_SELL_FLAG
1 1 60 20.0
2 40 40.0