使用pandas读取.csv文件时指定时间戳措辞格式?

时间:2015-07-23 08:26:44

标签: python pandas

我有一个.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'

我该怎么做?

1 个答案:

答案 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时解析日期,而不是之后,因为你不必先将所有字符串加载到内存中,然后转换它们,而是在运行中转换它们。

内存效率更高。