从csv文件中分析日期和时间



我有一些csv文件,格式如下:

330913;23;2;2013;0;0;6;8;7
330914;23;2;2013;0;5;25;8;7
330915;23;2;2013;0;10;11;8;7
330916;23;2;2013;0;15;30;8;7
330917;23;2;2013;0;20;17;8;7
330918;23;2;2013;0;25;4;8;7

我将它们读取到pandas DataFrame中,并需要指定一列(比如)'dt'和日期和时间。到目前为止,我最好的尝试是:

df = pd.read_csv( './cucu.csv', sep=';', 
    header=None, dtype='str' )
df[ 'dt' ] = pd.to_datetime(
    df[3]+df[2]+df[1]+df[4]+df[5]+df[6], 
    format='%Y%m%d%H%M%S')

我的问题是,如何在不处理字符串的情况下做到这一点?我很确定我过去用过这样的东西:

df = pd.read_csv( './cucu.csv', sep=';', header=None, 
    parse_dates={'dt': [3,2,1,4,5,6]} )

但它现在不起作用:我得到一个列dt,其中包含类似2013 2 23 0 0 6 的字符串

我错过了什么?

检查read_csv方法。具体来说,date_parser kwarg就是您想要的。它获取由parse_date列创建的结果字符串并对其进行处理

df = pd.read_csv('./cucu.csv', sep=';', header=None, parse_dates={'dt': [3,2,1,4,5,6]}, date_parser=lambda dts: pd.to_datetime(dts, format='%Y %m %d %H %M %S'))

相关内容

  • 没有找到相关文章