我有下面的代码,它检查日期是否在开始日期和结束日期之间,并返回其文件名。
import pandas as pd
def loaddata():
global dict1
dict1 = {}
with open('load.csv', mode='r') as f:
for z in csv.DictReader(f, skipinitialspace=True):
Start_date = pd.to_datetime(z['Start_date'])
End_date = pd.to_datetime(z['End_date'])
File_type = z['File_type']
File_name = z['File_name']
if File_name not in dict1:
dict1[File_name] = {}
if File_type not in dict1[File_name]:
dict1[File_name][File_type] = (Start_date, End_date)
# dict1 gives >> {'file_name': {'type1': (Timestamp('2019-05-06 00:00:00'), Timestamp('2019-12-31 00:00:00'))},
# 'file_name1': {'type2': (Timestamp('2018-05-06 00:00:00'), Timestamp('2018-12-31 00:00:00'))}}
def fn(date, filetype):
for filename, range in dict1.items():
if filetype in range:
start, end = range[filetype]
if start <= date <= end:
return filename
new_date = pd.to_datetime('2019-12-21')
print(fn(new_date, 'type1'))
# >> returns filename
我使用熊猫将字符串日期转换为日期格式。有没有没有熊猫的转换方法?
当然是:
from datetime import datetime
date_string = "2017/01/31"
date = datetime.strptime(date_string, "%Y/%m/%d")
print(date)
# datetime.datetime(2017, 1, 31, 0, 0)