python - 比较数据框中的两个日期时间列并返回一个标志
问题描述
我需要比较数据框中的两个日期时间列并创建一个返回 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 |
+-------------------+-------------------+
条件是:如果 date1 > date2 then 1 else 0
从上面的示例数据框想要的结果:
+------+
| Flag |
+------+
| 1 |
| 0 |
| 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')
推荐阅读
- javascript - 如何渲染反应组件出现错误“TypeError:x.IndexPage 不是函数”
- vivado - vivado hls 中的 FOPID 控制器实现
- google-app-engine - Google App Engine 上的 Nuxt.js - 2 个项目,一个在根目录中,另一个在目录中
- c# - 无法 MudDatePicker 如何将其绑定到数据模型
- c# - C# Path.GetExtension 'If' 语句
- visual-studio-code - Wolfram 语言服务器 - VSCode
- python - 使用 pandas.cut 分割连续变量,但它正在跳过值?
- html - 尽管我在 Opera 浏览器中重置了所有默认样式,但如何删除页脚周围的白色边框
- caching - 如何计算缓存大小
- java - 有没有人可以帮助我进行脉冲星性能?