我有如下数据。

我需要得到的百分比变化当前重采样(10秒)的最后价格与每日开盘价(00:00:00)如下所示。
有多个compid。

我做了类似下面的事情,但是df_price_curr_last得到了错误。
df_t is the data
group = ['compid', df_t['datetime'].date]
df_price_open = df_t.groupby(group)['price'].first().to_frame()
df_price_open
df_price_curr_last = df_t.groupby(group).resample('10S')['price'].last()
df_price_curr_last/df_price_open下面是错误消息。
ValueError: Key 2020-11-06 00:00:00 not in level Index([2020-11-06, 2020-11-07], dtype='object')发布于 2020-11-06 15:23:08
我认为您可以使用10S按日期分组,也可以按Grouper分组,聚合last,然后使用GroupBy.transform按第一级和第二级(compid和date)分组,以重复first值,因此可以将这两个Series分开
grouper = ['compid',
df_t['datetime'].dt.date.rename('date'),
pd.Grouper(freq='10S', key='datetime')]
df_price_curr_last = df_t.groupby(grouper)['price'].last()
print (df_price_curr_last)
df_price_open = df_price_curr_last.groupby(level=[0,1]).transform('first')
a = df_price_curr_last/df_price_openhttps://stackoverflow.com/questions/64710294
复制相似问题