python-3.x - 如何将具有对象数据类型的时间纳秒列转换为日期时间?
问题描述
我在“对象数据类型”中有以下数据集。我想将数据类型更改为日期时间。
0 00:00:00.000:
1 00:00:00.000:
2 00:00:00.000:
3 00:00:00.000:
4 00:00:00.000:
...
4943983 16:11:21.000:
4943984 16:11:24.000:
4943986 16:11:39.000:
4943987 16:11:51.000:
Name: Time, Length: 4943988, dtype: object
我尝试了以下命令。但它用 nan 替换了所有值。
timefmt = "%H:%M:%S"
dadr['Time'] = pd.to_datetime(dadr['Time'],
errors='coerce').dt.strftime(timefmt)
输出:
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
..
4943983 NaN
4943984 NaN
4943985 NaN
4943986 NaN
4943987 NaN
Name: Time, Length: 4943988, dtype: float64
我想补充一点,秒位置中有非零值的时间域。如时间数据'07:05:15.026:'不匹配格式'%H:%M:%S.000:'(匹配)
解决方案
您可以尝试将timefmt
toformat=
参数放入pd.to_datetime
:
timefmt = "%H:%M:%S.000:"
df['Time'] = pd.to_datetime(df['Time'], format=timefmt)
print(df)
印刷:
idx Time
0 4943983 1900-01-01 16:11:21
1 4943984 1900-01-01 16:11:24
2 4943985 1900-01-01 16:11:38
3 4943986 1900-01-01 16:11:39
4 4943987 1900-01-01 16:11:51
编辑:要解析之后的第二个分数.
,您可以使用%f
:
timefmt = "%H:%M:%S.%f:"
df['Time'] = pd.to_datetime(df['Time'], format=timefmt)
print(df)
印刷:
idx Time
0 4943983 1900-01-01 16:11:21.100
1 4943984 1900-01-01 16:11:24.200
2 4943985 1900-01-01 16:11:38.300
3 4943986 1900-01-01 16:11:39.400
4 4943987 1900-01-01 16:11:51.500
推荐阅读
- reactjs - 使用父文件夹中的打字稿源文件的问题
- probability - LSH - 成功概率和预期碰撞的证明
- go - 动态处理包和函数名
- mysql - 在 mysql 5.6 (Innodb) 中使用 Default 更改表时主从之间的复制问题
- dns - d_marc 在垃圾邮件文件夹中发送我自己的电子邮件
- python - 无法在 python 中使用 gzip 解压 kafka 流(使用 kafka-python lib)
- audio - 使用 ffmpeg 连接音频文件
- apache-kafka - Kafka中消费者的词典顺序到底是什么意思?
- sql-server - SQL 帮助 - 查找所有不等于某个值的不同 ID - 有多个相同的 ID
- r - 如何编写依赖于常数的动态方程