我需要比較數據框中的兩個日期時間列并創建一個返回 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
提交
取消