我需要比较数据框中的两个日期时间列并创建一个返回 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 |+------+有人可以帮我弄这个吗?
1 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
True, False
首先将值转换为日期时间,比较值并将其转换为1, 0
by 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 Flag
0 2020-08-06 13:27:01 2020-08-06 13:14:04 1
1 2020-08-06 05:01:02 2020-08-07 08:00:25 0
2 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')
添加回答
举报
0/150
提交
取消