为了账号安全,请及时绑定邮箱和手机立即绑定

通过对齐日期在 Pandas 数据框中创建 NaN 行

通过对齐日期在 Pandas 数据框中创建 NaN 行

呼如林 2021-11-02 16:35:18
我有一个熊猫数据框,如附件所示。它包含 2 个唯一 BondID 的不同日期的价格,如下所示:-Quote_Date     BondID     mid_ZSpread    rank----------     ------     -----------    -----28-12-2018     AAA        90.9           128-12-2018     BBB        30.9           231-12-2018     AAA        91.9           102-01-2019     AAA        92.9           102-01-2019     BBB        31.9           2对于该通知2018年1月31日-通知只有BondID AAA具有的价格。BondID BBB 缺少价格。我怎样才能编写一个有效的代码来:-1)对齐日期,即如果获得唯一日期2)然后在“mid_ZSpread”和“overall_rank”列中创建NaN条目(如下图)Quote_Date     BondID     mid_ZSpread    rank----------     ------     -----------    -----28-12-2018     AAA        90.9           128-12-2018     BBB        30.9           231-12-2018     AAA        91.9           131-12-2018     BBB        NaN            NaN02-01-2019     AAA        92.9           102-01-2019     BBB        31.9           2谢谢
查看完整描述

1 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

您想使用reindex,为此您需要先创建一个 MultiIndex,其中 QuoteDate 和 BondID 的所有组合都出现了from_product。如果你然后set_index,你可以重新索引,Pandas 会自动给出NaN未知值。


mi = pd.MultiIndex.from_product([df['Quote_Date'].unique(), df['BondID'].unique()])


df.set_index(['Quote_Date', 'BondID']).reindex(mi)

#                    mid_ZSpread  rank

#28-12-2018 AAA         90.9   1.0

#           BBB         30.9   2.0

#31-12-2018 AAA         91.9   1.0

#           BBB          NaN   NaN

#02-01-2019 AAA         92.9   1.0

#           BBB         31.9   2.0


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 203 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号