python - 将 dt 系列中缺失的日期添加到多重索引

标签 python pandas

尝试将缺失的日期时间添加到多重索引中。日期时间是一个系列(名为“ndx”)。 简单地这样做是行不通的:

df.reindex(index=ndx, level=0, fill_value=np.nan)

我有:

                   Column1
Date       Name
2016-11-01 AAA     25
           BBB     26
2016-11-07 CCC     27

我想要什么:

                   Column1
Date       Name
2016-11-01 AAA     25
           BBB     26
2016-11-02 NaN     NaN
2016-11-03 NaN     NaN
2016-11-04 NaN     NaN
2016-11-05 NaN     NaN
2016-11-06 NaN     NaN
2016-11-07 CCC     27

这是否可以在不将索引展平为列的情况下实现?如果没有,最有效的方法是什么。

最佳答案

使用DataFrame.merge使用左连接,只需首先将 MultiIndex 转换为列:

ndx = pd.Series(pd.date_range('2016-11-01','2016-11-07'))

df = ndx.to_frame('Date').merge(df.reset_index(), how='left').set_index(['Date','Name'])
print (df)
                 Column1
Date       Name         
2016-11-01 AAA      25.0
           BBB      26.0
2016-11-02 NaN       NaN
2016-11-03 NaN       NaN
2016-11-04 NaN       NaN
2016-11-05 NaN       NaN
2016-11-06 NaN       NaN
2016-11-07 CCC      27.0

关于python - 将 dt 系列中缺失的日期添加到多重索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58803538/

相关文章:

python - 如何使用 matplotlib 获取密度图的对数轴?

python - 从 Maya 场景文件获取摄像机列表或渲染全局变量,而无需在 Maya 中打开场景

python - Pandas:如何根据特定行值将值应用于一组行?

python - 使用 .apply 或传递一列数据框有什么区别

python - 获取购买次数最多的前 10 件商品作为列表

Python:如何替换文本中出现的 N 个随机字符串?

python - centos上python 2.7专门安装MySQLdb

python - 如何在python中使用变量作为字典的键

python - 使用 DataFrame 导出系列进行转换

python - 有没有办法为所有 Pandas 功能设置随机状态?