使用 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)
to_datetime
和 errors='coerce'
,然后删除所有 NaT
(不是时间)的值:
df[column] = pd.to_datetime(df[column], errors='coerce')
df = df[~df[column].isna()]