在熊猫read_csv中以毫秒为单位解析日期

实码

我的.csv样子是这样的:

     date      time  
0    20190101  181555700  
1    20190101  181545515

其中,格式是YYYYMMDDdateHHMMSSMMMtime(MMM最后是毫秒)。例如,第一行是2019-01-01 18:15:55.700

有没有一种方法可以直接从其中解析pd.read_csv()而不必稍后进行转换?仅使用parse_dates不起作用,因为它无法识别格式。我想要的是在我的数据框中有一个单独的列,时间戳正确地解析为

    timestamp
0   2019-01-01 18:15:55.700
PenutChen

我认为这接近您的需求:

import pandas as pd
import datetime as dt

data = pd.read_csv(
   './a.csv',
   delimiter='\t',
   index_col=0,
   parse_dates=[1],
   converters={'time': lambda t: dt.datetime.strptime(t, '%H%M%S%f').time()}
)

输出:

        date             time
0 2019-01-01  18:15:55.700000
1 2019-01-01  18:15:45.515000

经过一些调查,我发现:

data = pd.read_csv(
   './a.csv',
   delimiter='\t',
   index_col=1,
   parse_dates={'datetime': [1, 2]},
   converters={'time': lambda t: dt.datetime.strptime(t, '%H%M%S%f').time()}
)

输出为:

                 datetime
0 2019-01-01 18:15:55.700
1 2019-01-01 18:15:45.515

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章