【发布时间】:2021-12-12 07:08:41
【问题描述】:
我正在读取包含时间列的 Excel 文件。由于无法上传实际文件,我创建了变量timeIntervals 来说明。
当我运行这段代码时...
import pandas as pd
import datetime
from pyPython import *
def main():
timeIntervals = pd.date_range("11:00", "21:30", freq="30min").time
df = pd.DataFrame({"Times": timeIntervals})
grp = pd.Grouper(key="Times", freq="3H")
value = df.groupby(grp).count()
print(value)
if __name__ == '__main__':
main()
我收到以下错误:
TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index'
如何将pandas.Grouper 与DataFrame.groupby 结合使用,将数据帧df 组合成离散的时间范围(3 小时)?还有其他选择吗?
【问题讨论】:
-
在分组前执行
df['Times'] = pd.to_timedelta(df['Times'])。为什么你需要使用datetime.time而不是pd.Timedelta? -
谢谢@Quang Hoang。我正在阅读一个包含时间列的 Excel 文件。您是否建议另一种方法?
标签: python pandas dataframe datetime pandas-groupby