【发布时间】:2020-12-19 03:11:48
【问题描述】:
我有一个日期时间索引数据框,其中包含数年的日内数据,增量为 2 分钟。我想按天分组,并包括每天 06:30:00 超过价格的第一行。
df:
Price
2009-10-12 06:30:00 904
2009-10-12 06:32:00 904
2009-10-12 06:34:00 904.5
2009-10-12 06:36:00 905
2009-10-12 06:38:00 905.5
2009-10-13 06:30:00 901
2009-10-13 06:32:00 901
2009-10-13 06:34:00 901
2009-10-13 06:36:00 902
2009-10-13 06:38:00 903
我尝试使用 .groupby 和 .apply 与 lambda 函数按天分组,并包括在 06:30:00 时超过该值的所有行,但出现错误。
onh = pd.to_datetime('6:30:00').time()
onhBreak = df.groupby(df.index.date).apply(lambda x: x[x > x.loc[onh]])
ValueError: Can only compare identically-labeled Series objects
期望的输出:
Price
2009-10-12 06:34:00 904.5
2009-10-13 06:36:00 902
*如果这些行是 groupby 中的值,那也很好
感谢任何帮助。
【问题讨论】:
-
你能提供预期的输出吗?
-
返回下面的行(这是每天超过 06:30:00 值的第一行)就足够了。我不确定 .groupby 输出会是什么样子。可能每天的第一个时间戳作为组名,下面的行作为组值。 ` 2009-10-12 06:34:00 904.5 2009-10-13 06:36:00 902 `
标签: python-3.x pandas