Python 使用多索引重新编制索引并创建空日期
如何从2016-01-01之前的7天到2015年1月为每个国家/地区创建空行?我试着重新编制索引。我需要保留多重索引 df 预期产量Python 使用多索引重新编制索引并创建空日期,python,python-3.x,pandas,datetime,Python,Python 3.x,Pandas,Datetime,如何从2016-01-01之前的7天到2015年1月为每个国家/地区创建空行?我试着重新编制索引。我需要保留多重索引 df 预期产量 value date uk 2015-02-02 NaN ... 2016-01-01 4.0 2016-01-08 5.0 us 2015-02-02 NaN ... 2016-01-01 1.0
value
date
uk 2015-02-02 NaN
...
2016-01-01 4.0
2016-01-08 5.0
us 2015-02-02 NaN
...
2016-01-01 1.0
2016-01-08 1.5
我尝试修改前面的答案,以便在第一级中为每个类别获得相同的日期时间:
rng = (pd.date_range('2015-01-02', df.index.levels[1].min(), freq='7d')
.union(df.index.get_level_values(1).unique()))
cat = df.index.levels[0]
df = df.reindex(pd.MultiIndex.from_product([cat, rng]))
print (df)
value
a
uk 2015-01-02 NaN
2015-01-09 NaN
2015-01-16 NaN
2015-01-23 NaN
2015-01-30 NaN
...
us 2015-12-11 NaN
2015-12-18 NaN
2015-12-25 NaN
2016-01-01 1.0
2016-01-08 1.5
[108 rows x 1 columns]
这是一个很好的解决方案。谢谢
rng = (pd.date_range('2015-01-02', df.index.levels[1].min(), freq='7d')
.union(df.index.get_level_values(1).unique()))
cat = df.index.levels[0]
df = df.reindex(pd.MultiIndex.from_product([cat, rng]))
print (df)
value
a
uk 2015-01-02 NaN
2015-01-09 NaN
2015-01-16 NaN
2015-01-23 NaN
2015-01-30 NaN
...
us 2015-12-11 NaN
2015-12-18 NaN
2015-12-25 NaN
2016-01-01 1.0
2016-01-08 1.5
[108 rows x 1 columns]