我试图按用户组填充缺少的日期,但是我的一个索引列有一个重复的日期,所以我试图使用唯一日期并重新索引,然后我得到的长度不匹配错误。怎么了我是否可以按天频率重新采样而不会出现重复错误。在
import pandas as pandas
x = pandas.DataFrame({'user': ['a','a','b','b','a'], 'dt': ['2016-01-01','2016-01-02', '2016-01-05','2016-01-06','2016-01-06'], 'val': [1,33,2,1,2]})
udates=x['dt'].unique()
x['dt'] = pandas.to_datetime(x['dt'])
dates = x.set_index(udates).resample('D').asfreq().index
users=x['user'].unique()
idx = pandas.MultiIndex.from_product((dates, users), names=['dt', 'user'])
x.set_index(['dt', 'user']).reindex(idx, fill_value=0).reset_index()
print(x)
期望输出
^{pr2}$
这里有一种方法,将每个
user
重新编制索引,使日期范围从最小日期到最长日期:另一种方式不如@sacul优雅…但速度几乎一样。在
数据框:
^{pr2}$相关问题 更多 >
编程相关推荐