我正在使用从Blob商店读取表格数据集,如下所示:
df = Dataset.Tabular.from_delimited_files(path=[DataPath(ds, blobstore_dir + 'tabular_data.csv')],
separator=',', header=True)数据有四个日期时间列,其中一个列读入没有问题,因为在某些情况下,月日顺序并不模糊,但其他三个列被错误地推断为“月日”而不是“日月”。
在读取数据时,我会收到以下警告:
UserWarning:为列‘句点开始’、‘句点结束’、‘提取At’推断的模糊日期时间格式被解析为“月日”。所需的格式可以由
set_column_types指定。
我尝试将列类型设置为如下,并尝试了几种不同的格式,但最终得到的结果是NULL代替所有值。
df = Dataset.Tabular.from_delimited_files(
path=[DataPath(ds, blobstore_dir + 'tabular_data.csv')], separator=',', header=True,
set_column_types={'Period Start': DataType.to_datetime("%d-%m-%Y %H:%M:%S"),
'Period End': DataType.to_datetime("%d-%m-%Y %H:%M:%S"),
'Extracted At': DataType.to_datetime("%d-%m-%Y %H:%M:%S")})from_delimited_files()的文档是这里
有人能告诉我如何强制from_delimited_files()将不确定的日期时间作为日月来解决,还是告诉我如何正确地使用set_column_types?我通过插入一个具有明确日期时间的虚拟行来临时解决这个问题。
发布于 2022-01-05 10:53:41
您可以导入Pandas并使用date_parser和to_datetime的格式将日期时间与各自的格式转换。
date_parser=lambda x: pd.to_datetime(x, format='%m/%d/%Y %I:%M:%S %p'))从文件中读取
pd.read_csv('testresult.csv', parse_dates=['TIME'],
date_parser=lambda x: pd.to_datetime(x, format='%m/%d/%Y %I:%M:%S %p'))它还将格式传递给date_parser参数,而不是让熊猫尝试用infer_datetime_format参数猜测它。
参考这里
https://stackoverflow.com/questions/70586850
复制相似问题