【发布时间】:2019-12-26 17:11:43
【问题描述】:
我正在使用一个数据集,其中包含有关多个用户的每月信息。并且每个用户都有不同的时间范围。每个用户也缺少“时间”数据。我想做的是根据每个用户的时间范围(从 min.time 到 max.time 以月为单位)填写每个用户的缺失月份数据
我已经阅读了使用 re-sample, re-index from here 的类似情况的方法,但我没有得到所需的输出/在填充缺失的月份后存在行不匹配。
任何帮助/指针将不胜感激。
-卢克
尝试使用重新采样、重新索引,但没有得到想要的输出
x = pd.DataFrame({'user': ['a','a','b','b','c','a','a','b','a','c','c','b'], 'dt': ['2015-01-01','2015-02-01', '2016-01-01','2016-02-01','2017-01-01','2015-05-01','2015-07-01','2016-05-01','2015-08-01','2017-03-01','2017-08-01','2016-09-01'], 'val': [1,33,2,1,5,4,2,5,66,7,5,1]})
date id value
0 2015-01-01 a 1
1 2015-02-01 a 33
2 2016-01-01 b 2
3 2016-02-01 b 1
4 2017-01-01 c 5
5 2015-05-01 a 4
6 2015-07-01 a 2
7 2016-05-01 b 5
8 2015-08-01 a 66
9 2017-03-01 c 7
10 2017-08-01 c 5
11 2016-09-01 b 1
我希望看到的是 - 对于每个“id”,根据该 id 的 min.date 和 max.date 生成缺失的月份,并用 0 填充那些月份的“val”。
【问题讨论】:
标签: python-3.x pandas pandas-groupby