加速解析函数dateutil

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

使用 dateutil 我创建了一个函数,该函数检查 csv 中的数据是否为日期,如果不是,则将其从数据框中删除,但我的速度有问题,对数十万行的字符串或 int 进行类似检查需要 1-2 秒,但这需要更多时间日期检查时间不超过 1 分钟。我需要一些提示,如何加快速度,也许 pandas 库中有一些功能

df = pd.read_csv(filename, delimiter='|', dtype=str)
for i, ColumnValueDate in enumerate(df[column]):
     try:
        df.loc[i, column[0]] = parse(str(ColumnValueDate)).strftime("%Y-%m-%d")
    except ParserError as ex:
        dataframeIndexToDelete.append(i)
        print(ex)
df = df.drop(dataframeIndexToDelete)
python pandas python-dateutil
1个回答
0
投票

您可以在列上使用

to_datetime
errors='coerce'
,然后删除所有
NaT
(不是时间)的值:

df[column] = pd.to_datetime(df[column], errors='coerce')
df = df[~df[column].isna()]
© www.soinside.com 2019 - 2024. All rights reserved.