【发布时间】:2020-05-06 06:19:39
【问题描述】:
我有这个数据框: DataFrame 我应用了 df.groupby ('site') 来通过这个特性对数据进行分类。
grouped = Datos.groupby('site')
分类后,我想逐日完成所有记录的“日期”列。 我认为我应该遵循的程序是: 1. 生成开始日期和结束日期之间的完整序列。 (步骤完成)。
for site in grouped:
dates = ['2018-01-01', '2020-01-17']
startDate = datetime.datetime.strptime( dates[0], "%Y-%m-%d") # parse first date
endDate = datetime.datetime.strptime( dates[-1],"%Y-%m-%d") # parse last date
days = (endDate - startDate).days # how many days between?
allDates = {datetime.datetime.strftime(startDate+datetime.timedelta(days=k),
"%Y-%m-%d"):0 for k in range(days+1)}
- 将此序列与我的 groupby 的“日期”列进行比较。 ('Site) 并添加那些不存在的与'日期'中的日期不匹配的日期。
- 编写一个函数或循环,允许您使用新日期更新“日期”列,并使用 0 补全缺失值。
(grouped.apply(add_days))
到目前为止,我只完成了第 1 步,所以我请求您帮助完成第 2 步和第 3 步。 我非常感谢您一直以来的重要帮助。 问候
【问题讨论】:
标签: python dataframe time-series pandas-groupby