如何管理时间delta日期计算的缺失值



在名为" question "的数据框中,以下两列是从一个更大的数据框中复制过来的

{'Breddat': {0: Timestamp('2010-05-04 00:00:00'),
1: Timestamp('2011-02-02 00:00:00'),
2: Timestamp('2010-05-04 00:00:00'),
3: Timestamp('2011-04-27 00:00:00'),
4: Timestamp('2012-01-24 00:00:00'),
5: NaT,
6: Timestamp('2015-02-06 00:00:00'),
7: Timestamp('2016-02-04 00:00:00')},
'Result': {0: 176.0,
1: 97.0,
2: 162.0,
3: 112.0,
4: 81.0,
5: nan,
6: 87.0,
7: 97.0}}

如果我删除了缺少'Result'值的行,那么下面的代码计算'Cdat'工作

question['Cdat'] = (question['Breddat']) - question['Result'].map(dt.timedelta)

我不能删除主数据框架中缺失值的所有行(它们是其他事情所需要的)。我尝试了不同的方法来排除计算中缺失值的行,但没有成功。我对蟒蛇和熊猫不熟悉,似乎缺少一些基本的东西。

感谢在有缺失值的行时计算概念日期(Cdat)的任何帮助。

pd.to_timedelta代替datetime.timestamp来处理NaN

question['Cdat'] = question['Breddat'] - pd.to_timedelta(question['Result'], unit='D')
>>> question
Breddat  Result       Cdat
0 2010-05-04   176.0 2009-11-09
1 2011-02-02    97.0 2010-10-28
2 2010-05-04   162.0 2009-11-23
3 2011-04-27   112.0 2011-01-05
4 2012-01-24    81.0 2011-11-04
5        NaT     NaN        NaT
6 2015-02-06    87.0 2014-11-11
7 2016-02-04    97.0 2015-10-30

相关内容

  • 没有找到相关文章

最新更新