如何使用 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
名为 '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