首页 > 解决方案 > 如何将时间索引格式 HH:MM:SS.fs 正确导入和绘制到 Pandas 数据框中

问题描述

我是 python 新手,我正在尝试使用 HH:MM:SS.fs 格式的时间列作为数据帧的索引,将 .txt 数据文件正确解析为 pandas。.txt 输入文件的示例行如下所示:

00:07:01.250    10.7

我已经使用 datetime 函数尝试了以下代码,但是除了导入我不想显示的时间戳之外,这还添加了今天的日期。我还阅读了有关时间戳和 timedelta 函数的信息,但看不到这些函数在这个用例中是如何工作的。

df = pd.read_csv(f, engine='python', delimiter='\t+', skiprows=23, header=None, usecols=[0,3], index_col=0, names=['Time (HH:MM:SS.fs)', 'NL (%)'], decimal=',')
    df.index = pd.to_datetime(df.index)

这是日期时间导入的现有导入代码:

df = pd.read_csv(f, engine='python', delimiter='\t+', skiprows=23, header=None, usecols=[0,3], index_col=0, names=['Time (HH:MM:SS.fs)', 'NL (%)'], decimal=',')
    df.index = pd.to_datetime(df.index)

输出的示例行如下所示:

2019-09-26 00:07:01.250    10.7

但我想要的是这个(没有日期):

00:07:01.250    10.7

关于我做错了什么的任何想法?

标签: pythonpandasdatetimetimestamptimedelta

解决方案


您可以使用以下方法将列读取为字符串:

df.some_column = df.some_column.astype('str') 

然后使用“to_datetime”的“格式”参数。它使用python“strptime”方法将字符串转换为日期时间,该方法允许您指定转换对象的确切格式,如以下链接所示:

https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior

我希望这有帮助。希望我有更多的时间来测试,但不幸的是我没有。


推荐阅读