Python pandas datetime - 在特定条件下仅更改年份

时间:2015-10-06 01:55:18

标签: python datetime pandas

我有一个数据框: enter image description here

Opening Date2Closing Date2是我创建的硅藻土对象。

我想将另一列添加为Closing Date Actual

如果Change Closing Date为True,我想将Closing Date2列添加到我的新列中,并添加1年。如果它是假的,我想添加它。

例如,在新列中,前5行将是:

2015-06-25
2015-03-19
2015-01-22
2014-04-04
2014-02-07

我尝试使用列表推导,时间增量函数,但无法使其正常工作。

1 个答案:

答案 0 :(得分:1)

这需要版本0.17(很快就会发布,或者可以使用conda install -c pandas pandas安装版本候选版本)。有关详细信息,请参阅DateOffset文档。

df['Closing Date2'] = np.where(df['Change Closing Date'], 
                               df['Closing Date'] + pd.DateOffset(years=1),
                               df['Closing Date'])

在旧版本中,您必须将df['Closing Date']包裹在DatetimeIndex中,如下所示:

df['Closing Date2'] = np.where(df['Change Closing Date'], 
                               pd.DatetimeIndex(df['Closing Date']) + pd.DateOffset(years=1),
                               df['Closing Date'])