apo*_*sis 2 python datetime parsing python-3.x pandas
我的.csv看起来像这样:
date time
0 20190101 181555700
1 20190101 181545515
Run Code Online (Sandbox Code Playgroud)
其中格式为YYYYMMDDfordate和HHMMSSMMMfor time(最后一个 MMM 是毫秒)。例如第一行是2019-01-01 18:15:55.700
有没有办法直接解析它而pd.read_csv()不必稍后转换它?仅使用parse_dates不起作用,因为它无法识别格式。我想要的是在我的数据框中有一列,时间戳正确解析为
timestamp
0 2019-01-01 18:15:55.700
Run Code Online (Sandbox Code Playgroud)
您可以使用to_timedeltawithunit选项将您的变成time并timedelta添加到date:
df = pd.read_csv('file.csv', parse_dates=['date'])
df['date'] = df.date + pd.to_timedelta(df.time, unit='ms')
Run Code Online (Sandbox Code Playgroud)
或者:
df = pd.read_csv('file.csv')
df['date'] = pd.to_datetime(df.date) + pd.to_timedelta(df.time, unit='ms')
Run Code Online (Sandbox Code Playgroud)
输出:
date time
0 2019-01-03 02:25:55.700 181555700
1 2019-01-03 02:25:45.515 181545515
Run Code Online (Sandbox Code Playgroud)
每条评论更新:
df['date'] = pd.to_datetime(df.date.astype(str)+df.time.astype(str), format='%Y%m%d%H%M%S%f')
Run Code Online (Sandbox Code Playgroud)
输出:
date time
0 2019-01-01 18:15:55.700 181555700
1 2019-01-01 18:15:45.515 181545515
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2686 次 |
| 最近记录: |