数据框列检查日期是否有效

时间:2018-11-04 21:16:19

标签: python pandas

我有一个数据帧(df),其头部看起来像:

             DATE     NEW_DATE
0      2014-03-04   2014-04-03
1      2014-04-04   2014-04-04
2      2014-07-04   2014-04-07
3      2014-08-04   2014-04-08
4      2014-09-04   2014-04-09
5      2014-10-04   2014-04-10
6      2014-11-04   2014-04-11
7      2014-04-14          NaT
8      2014-04-15          NaT

我想添加一列FINAL_DATE,它看起来在NEW_DATE上,如果格式是有效日期,则选择NEW_DATE值,否则使用DATE值。因此,在上述数据框中,输出如下所示:

            DATE     NEW_DATE   FINAL_DATE
0      2014-03-04   2014-04-03  2014-04-03
1      2014-04-04   2014-04-04  2014-04-04
2      2014-07-04   2014-04-07  2014-04-07
3      2014-08-04   2014-04-08  2014-04-08
4      2014-09-04   2014-04-09  2014-04-09
5      2014-10-04   2014-04-10  2014-04-10 
6      2014-11-04   2014-04-11  2014-04-11
7      2014-04-14          NaT  2014-04-14
8      2014-04-15          NaT  2014-04-15

我现在需要使用以下内容:

df['FINAL_DATE'] = np.where(df['NEW_DATE'] == VALIDDATE, df['NEW_DATE'] , df['DATE'])

请问有人可以告诉我如何在NEW_DATE栏中查看有效日期吗?

谢谢

1 个答案:

答案 0 :(得分:2)

您非常亲密,有几种方法可以实现这一目标。一种方式:

df.NEW_DATE.fillna(df.DATE, inplace=True)
df
        DATE   NEW_DATE
0 2014-03-04 2014-04-03
1 2014-04-04 2014-04-04
2 2014-07-04 2014-04-07
3 2014-08-04 2014-04-08
4 2014-09-04 2014-04-09
5 2014-10-04 2014-04-10
6 2014-11-04 2014-04-11
7 2014-04-14 2014-04-14
8 2014-04-15 2014-04-15