首页 > 解决方案 > 如何使用 Pandas 从 CSV 文件的日期列中提取特定日期集?

问题描述

我想从我的 CSV 文件的日期列中访问一些特定值并保存到另一个。

这里'f'是我的csv文件的数据框,“now”是当前日期,“f['Date']”是必须操作的列,LOGIC:

如果当天是星期一,那么我从当前日期减去 2 天,然后将其存储在“day”中并访问 f['Date'] 列中相当于“day”日期的日期。否则我们只减去 1 天并做同样的事情。

now = date.today()
curr_day= now.strftime("%A")
now = now.strftime("%Y-%m-%d")

f['Date'] = pd.to_datetime(f['Date'])
# f['Date'] = f['Date'].apply( lambda x : x.strftime("%Y-%m-%d"))
f['Date'] = f['Date'].astype(str)
if curr_day == 'Monday':

    day = datetime.datetime.strptime(now,"%Y-%m-%d").date() - timedelta(days=2)
    day= day.strftime("%Y-%m-%d")
    f['Date']=f.loc[f['Date']==day]

else:

    day = datetime.datetime.strptime(now,"%Y-%m-%d").date() - timedelta(days=1)
    day= day.strftime("%Y-%m-%d")
    f['Date']=f.loc[f['Date']==day]

我有一个日期,可以说:DATE1,我只需要访问日期列中与 DATE1 等效的值并保存到新的 CSV 文件。

Date
01-Apr-19
02-Apr-19
03-Apr-19
14-Apr-19
18-Apr-19
14-Apr-19
14-Apr-19
14-Apr-19
01-Apr-19
10-Apr-19
01-Apr-19
01-Apr-19

假设 DATE1=14-04-2019

然后更新的 CSV 看起来像

Date
14-Apr-19
14-Apr-19
14-Apr-19
14-Apr-19

标签: python-3.xpandas

解决方案



我假设您提供的日期格式并添加我的回复。我附上了您的解决方案的代码!

from datetime import datetime, timedelta
import pandas as pd

data['date'] = pd.to_datetime(data['Date'],format='%d-%b-%y')
data['date'] = data['date'].apply(lambda x: x.date())
now = datetime.now()
day = now.strftime("%A")
if day=='Monday':
    days_to_subtract = 2
    date_filter = datetime.today() - timedelta(days=days_to_subtract)
    new_data = data.loc[data['date']==(date_filter).date()]
    new_data.drop('date',1,inplace = True)
    new_data.reset_index(drop=True,inplace = True)
else:
    days_to_subtract = 1    
    date_filter = datetime.today() - timedelta(days=days_to_subtract)
    new_data = data.loc[data['date']==(date_filter).date()]
    new_data.drop('date',1,inplace = True)
    new_data.reset_index(drop=True,inplace = True)

推荐阅读