如何使用 timedelta 日期计算来管理缺失值

How to manage missing values with timedelta date calculations

名为 '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)

我无法删除主数据框中所有具有缺失值的行(它们对于其他事情是必需的)。我尝试了不同的方法来从计算中排除具有缺失值的行,但没有成功。我是 python 和 pandas 的新手,似乎缺少一些基本的东西。

感谢任何帮助计算受孕日期 (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