首页 > 解决方案 > 无法在熊猫数据框中过滤日期

问题描述

我有一个 .csv 文件,其中包含多个列,其中一个被调用Date并且具有 2018 的日期值,如下所示:

在此处输入图像描述

此列的格式为Date.csv。

我将在我的源代码中执行以下操作:

import pandas as pd

# Load data
data_daily = pd.read_csv('Desktop/data_daily.csv', keep_default_na=True)

# Filter data_daily down to only October
data_daily = data_daily[(data_daily['Date'] > '01/10/2018') & (data_daily['Date'] < '31/10/2018')]

# Save as a new .csv file
data_daily.to_csv('Desktop/final.csv', index=False)

但是,最终的 .csv 文件包含所有日期,而不仅仅是我想要的日期。

我不知道这是否会有所不同,但请记住,有多行具有相同的日期。

我怎样才能解决这个问题?

标签: pythonpandas

解决方案


首先将解析列中的参数添加parse_datesread_csv日期时间:

data_daily = pd.read_csv('Desktop/data_daily.csv',
                         keep_default_na=True, 
                         parse_dates=['Date'],
                         dayfirst=True)

然后使用您的解决方案或替代方案between将字符串转换为Timestamp

s = pd.Timestamp('2018-10-01')
e = pd.Timestamp('2018-10-31')
data_daily = data_daily[data_daily['Date'].between(s, e, inclusive=False)]

推荐阅读