我们可以从CSV文件中自动检测给定列的日期时间格式吗?

efzxgjgh  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(117)

假设我有一个csv和一个timestamp,但格式没有定义。它可以是任何格式和任何分隔符,如-
mm/dd/yyyy hh:mmdd/mm/yyyy hh:mm:ssmm-dd-yyyy hh:mmdd-mm-yyyy hh:mm:ss或类似的。
我正在尝试解析任何格式的日期。
这里:

dateparse = lambda dates: datetime.strptime(dates, '%m/%d/%Y %H:%M')

字符串
我们定义了如下格式的日期解析:%m/%d/%Y %H:%M
如果有人能给予任何有价值的建议,那么它将是有帮助的。

wvt8vs2t

wvt8vs2t1#

pandas.read_csv有一个infer_datetime_format参数:
inerate_datetime_format:boolean,default False
如果启用True和parse_dates,pandas将尝试推断列中日期时间字符串的格式,如果可以推断,则切换到更快的解析方法。在某些情况下,这可以将解析速度提高约5- 10倍。

m0rkklqb

m0rkklqb2#

DuckDB是一个SQL OLAP DBMS,包括一个非常强大的CSV解析器,可以自动检测文件格式,标题,列类型等https://duckdb.org/2023/10/27/csv-sniffer.html
它还包括一个PythonAPI,可以直接或通过Conda使用DuckDB。
你只需要加载库并将CSV包含在内存表中

import duckdb
duckdb.sql("CREATE TABLE temptable AS SELECT * from read_csv_auto('myfile.csv'")

字符串
以便以后可以对表执行任何查询

duckdb.sql("SUMMARIZE SELECT * from temptable")

相关问题