Python 基于businessdate索引为数据框中的多个列输入缺失的日期

Python 基于businessdate索引为数据框中的多个列输入缺失的日期,python,pandas,datetime,Python,Pandas,Datetime,我有一个如下性质的数据框架 A_DATE A_VALUE B_DATE B_VALUE C_DATE C_VALUE 2014-04-04 2.1 2014-04-04 4.8 2014-04-04 0.6 2014-04-05 2.3 2014-04-08 4.9 2014-04-05 0.8 2014-04-09 2.2 201

我有一个如下性质的数据框架

A_DATE       A_VALUE      B_DATE       B_VALUE     C_DATE      C_VALUE
2014-04-04   2.1          2014-04-04   4.8         2014-04-04   0.6
2014-04-05   2.3          2014-04-08   4.9         2014-04-05   0.8
2014-04-09   2.2          2014-04-09   4.6         2014-04-08   0.2
我有一个通过

 pd.bdate_range('2013-03-27', '2018-03-28')
我如何拥有如下所示的数据帧:

INDEX         A_DATE       A_VALUE      B_DATE       B_VALUE     C_DATE      C_VALUE
2014-04-04   2014-04-04   2.1          2014-04-04   4.8         2014-04-04   0.6
2014-04-05   2014-04-05   2.3          NA            NA         2014-04-05   0.8
2014-04-08   NA            NA          2014-04-08   4.9         2014-04-08   0.2
2014-04-09   2014-04-09   2.2          2014-04-09   4.6         NA            NA        
我知道诸如
pd.merge\u asof
pd.merge\u ordered
之类的函数,但是我假设我必须首先将数据帧拆分为多个子集,然后再应用合并,根据从
pd.bdate
\u range生成的索引合并所有数据帧? 任何其他方法都会非常有用


一如既往地感谢您

我建议将所有列转换为
DatatimeIndex
而不是多个
datetime
列:

idx = pd.bdate_range('2014-04-01', '2014-04-10')
df.columns = df.columns.str.split('_', expand=True)
df = (df.stack(0)
       .reset_index(level=0, drop=True)
       .set_index('DATE', append=True)['VALUE']
       .unstack(level=0)
       .reindex(idx))
print (df)
              A    B    C
2014-04-01  NaN  NaN  NaN
2014-04-02  NaN  NaN  NaN
2014-04-03  NaN  NaN  NaN
2014-04-04  2.1  4.8  0.6
2014-04-07  NaN  NaN  NaN
2014-04-08  NaN  4.9  0.2
2014-04-09  2.2  4.6  NaN
2014-04-10  NaN  NaN  NaN
说明

  • 多索引的第一列
  • 第一级重塑
  • 通过以下方式移除第一层:
  • 日期
    附加到
    多索引
  • 重塑
  • 上次
    DatetimeIndex

  • 如果你能提供一些代码来重现你的数据总是很好的。你需要多个datetimes列吗?不,只是索引可以是datetime..@asimo-Super,给我一些时间解释一下。