如何避免将字符串转换为日期格式的大熊猫

问题描述 投票:1回答:1

我有下面的代码,它检查日期是否在开始日期和结束日期之间,并返回其文件名。

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

我使用熊猫将字符串日期转换为日期格式。有没有没有熊猫的转换方法?

python django pandas
1个回答
2
投票

当然是:

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)

© www.soinside.com 2019 - 2024. All rights reserved.