如何使用 pandas 解析 CSV 文件?

How to parse CSV file using pandas?

现在我有一个 .csv 文件,其中有一列时间,例如“20140203 00:00:03.132”,我怎样才能有效地删除秒部分(“:03.132”)?数据量很大,我试过用sed预处理数据,但是太慢了!

我现在正在尝试解析 pandas 中的 .csv 文件。无论如何我可以有效地处理它吗? pandas以外的方法也欢迎!

有一个方便的时间戳解析库:datetime:

import datetime
x = '20140203 00:00:03.132'
timestamp = datetime.datetime.strptime(x, '%Y%m%d %H:%M:%S.%f')
print datetime.datetime.strftime(timestamp, '%Y%m%d %H:%M')  # 20140203 00:00

或者因为对于大量数据来说有点慢,你可以从第一个:右边开始拆分,然后取结果列表的第一个元素:

print x.rsplit(':', 1)[0]  # 20140203 00:00

看看 date_parser 参数到 pandas.read_csv()。与此类似的东西应该有效:

import dateutil
from pandas import read_csv

def my_date_parser(seq):
    return [dateutil.parser.parse(s[:14]) for s in seq]

csv = read_csv('file.csv', parse_dates=[3], date_parser=my_date_parser)

您可能还需要提供参数 parse_dates 来确定包含日期字符串的列,例如以上将第 3 列指定为日期列。