比较数据框中的两个日期时间列并返回一个标志

我需要比较数据框中的两个日期时间列并创建一个返回 0/1 标志的新列。


数据框:


+-------------------+-------------------+

|       Date1       |       Date2       |

+-------------------+-------------------+

| 6-8-2020 13:27:01 | 6-8-2020 13:14:04 |

| 6-8-2020 5:01:02  | 7-8-2020 8:00:25  |

| 6-8-2020 7:45:43  | 6-8-2020 8:10:04  |

+-------------------+-------------------+

条件是:if date1 > date2 then 1 else 0


上面示例数据框的所需结果:


+------+

| Flag |

+------+

|    1 |

|    0 |

|    0 |

+------+

有人可以帮我弄这个吗?


HUX布斯
浏览 140回答 1
1回答

白衣非少年

True, False首先将值转换为日期时间,比较值并将其转换为1, 0by Series.astype:df.Date1 = pd.to_datetime(df.Date1, dayfirst=True)df.Date2 = pd.to_datetime(df.Date2, dayfirst=True)df['Flag'] = (df.Date1 > df.Date2).astype(int)print (df)                Date1               Date2  Flag0 2020-08-06 13:27:01 2020-08-06 13:14:04     11 2020-08-06 05:01:02 2020-08-07 08:00:25     02 2020-08-06 07:45:43 2020-08-06 08:10:04     0或用于比较Series.gt和用于1,0 Series.view:df['Flag'] = df.Date1.gt(df.Date2).view('i1')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python