【发布时间】:2020-09-23 10:55:38
【问题描述】:
我有 csv 列,其日期时间值低于毫秒值。
20-07-10 16:00:08.155
20-07-10 16:10:30.745
20-07-10 16:34:09.246
20-07-10 16:46:00.961
20-07-10 16:56:04.129
20-07-10 17:06:09.536
20-07-10 18:06:26.568
20-07-10 18:26:36.569
20-07-10 18:36:50.560
20-07-10 18:47:06.114
20-07-10 18:57:25.397
我需要按每小时 15 分钟对时间进行分组,并添加一个开始时间为 15 分钟间隔的新列。输出应该在 csv 中有一个额外的列,时间段如下所示。
20-07-10 16:00:08.155 20-07-10 16:00
20-07-10 16:10:30.745 20-07-10 16:00
20-07-10 16:34:09.246 20-07-10 16:30
20-07-10 16:46:00.961 20-07-10 16:45
20-07-10 16:56:04.129 20-07-10 16:45
20-07-10 17:06:09.536 20-07-10 17:00
20-07-10 18:06:26.568 20-07-10 18:00
20-07-10 18:26:36.569 20-07-10 18:15
20-07-10 18:36:50.560 20-07-10 18:30
20-07-10 18:47:06.114 20-07-10 18:45
20-07-10 18:57:25.397 20-07-10 18:45
我现在的代码如下所示
import pandas as pd
from datetime import datetime
in_path = "input.csv"
df = pd.read_csv(in_path)
time_utc = df['DATE_TIME_2'] # in csv file, "DATE_TIME_2" column has the datetime value.
print(time_utc)
time_utc['time_bucket'] = time_utc.apply(lambda x: "perdio_%d"%(int(x['DATE_TIME_2'].minute/15)))
print(time_utc)
但上面的代码给了我以下错误:
TypeError:字符串索引必须是整数
如果我使用以下任何一个来代替 lambda,
time_utc.groupby(pd.Grouper(freq='15Min')).first()
time_utc.resample('15min').first()
我收到以下错误:
TypeError:仅适用于 DatetimeIndex、TimedeltaIndex 或 PeriodIndex,但得到了一个'RangeIndex'的实例
【问题讨论】:
-
注意:我已经检查了现有的答案,但解决方案没有解决我的问题。
标签: python-3.x pandas dataframe csv datetime