Python 使用多索引重新编制索引并创建空日期

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

如何从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
     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]