python - python 中的日期时间比较

标签 python numpy pandas

我有一个包含两个不同日期的文件:一个有时间戳,另一个没有。我需要读取文件,忽略时间戳,然后比较两个日期。如果两个日期相同,那么我需要将其吐出到输出文件并忽略任何其他行。 我无法知道是否应该在输入上使用日期时间函数并在那里格式化日期,然后简单地查看两者是否相等?或者我应该使用时间增量?

我尝试了几种不同的方法,但都没有成功。

df = pd.read_csv("File.csv", dtype={'DATETIMESTAMP': np.datetime64, 'DATE':np.datetime64})

给我:类型错误:不支持解析 dtype < M8,请改用 parse_dates 传递此列

我还尝试删除时间戳然后进行比较,但字符串最终会出现不同的日期格式,这也不起作用。

df['RemoveTimestamp'] = df['DATETIMESTAMP'].apply(lambda x: x[:10])
df = df[df['RemoveTimestamp'] == df['DATE']]

任何指导表示赞赏。

这是我的示例输入 CSV 文件:

"DATE", "DATETIMESTAMP"

"8/6/2014","2014-08-06T10:18:38.000Z"
"1/15/2013","2013-01-15T08:57:38.000Z"
"3/7/2013","2013-03-07T16:57:18.000Z"
"12/4/2012","2012-12-04T10:59:37.000Z"
"5/6/2014","2014-05-06T11:07:46.000Z"
"2/13/2013","2013-02-13T15:51:42.000Z"

最佳答案

import pandas as pd
import numpy as np


# your data, both columns are in string
# ================================================
df = pd.read_csv('sample_data.csv')

df

        DATE             DATETIMESTAMP
0   8/6/2014  2014-08-06T10:18:38.000Z
1  1/15/2013  2013-01-15T08:57:38.000Z
2   3/7/2013  2013-03-07T16:57:18.000Z
3  12/4/2012  2012-12-04T10:59:37.000Z
4   5/6/2014  2014-05-06T11:07:46.000Z
5  2/13/2013  2013-02-13T15:51:42.000Z


# processing
# =================================================
# convert string to datetime
df['DATE'] = pd.to_datetime(df['DATE'])
df['DATETIMESTAMP'] = pd.to_datetime(df['DATETIMESTAMP'])

# cast timestamp to date
df['DATETIMESTAMP'] = df['DATETIMESTAMP'].values.astype('<M8[D]')

        DATE DATETIMESTAMP
0 2014-08-06    2014-08-06
1 2013-01-15    2013-01-15
2 2013-03-07    2013-03-07
3 2012-12-04    2012-12-04
4 2014-05-06    2014-05-06
5 2013-02-13    2013-02-13


# compare
df['DATE'] == df['DATETIMESTAMP']

0    True
1    True
2    True
3    True
4    True
5    True
dtype: bool

关于python - python 中的日期时间比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31577280/

相关文章:

python - 将 numpy 数组列表转换为单个 int numpy 数组

python - 在 MacOS Mojave 上为 QGIS 安装 Python 3.6

Python Pandas : Multi-Column Pivot and Level Swapping

Python Pandas 连接行并汇总值

python - 使用文本文档更改列表中的项目

python - 绘制在窄范围内采样的复杂信号的频谱的正确方法是什么?

python - 如何使用 numpy.delete 过滤项目? (为某些人工作,但不为其他人工作)

python - Seaborn:Violinplot 遇到变量太多的困难?

python - 如何在条件检查时从现有数据帧复制数据帧中的选定行? [Python]

python - 从背景窗口获取像素颜色