我有一个.csv文件,其中有数千个条目由数据记录器创建。
格式或多或少是这样的:
time | data
01/07/2015 12:25:45 | 356.24
01/07/2015 12:25:50 | 357.24
01/07/2015 12:25:55 | 351.24
01/07/2015 12:26:00 | 357.20
01/07/2015 12:26:05 | 356.32
...
当我使用pandas
读取文件时import pandas as pd
df = pd.read_csv(filename, parse_dates=True, infer_datetime_format=True)
某些日期由于某种原因被识别为错误,因此我想手动指定日期格式字符串,即de格式字符串format_str = '%d/%m/%Y %H:%M:%S'
我该怎么做?
答案 0 :(得分:0)
The pandas.read_csv
function不仅采用parse_dates=
参数,还采用date_parser=
参数。使用date_parser=
参数,您可以指定自己的函数来解析日期。
像这样:
def myparser(x):
return datetime.strptime(x, '%d/%m/%Y %H:%M:%S')
df = pd.read_csv(filename, parse_dates=True, date_parser=myparser)
这应该确保您的日期始终只使用该格式进行解析。
最好在阅读csv时解析日期,而不是之后,因为你不必先将所有字符串加载到内存中,然后转换它们,而是在运行中转换它们。
内存效率更高。