将时间转换为秒[删除毫秒]

问题描述 投票:0回答:2

我有一个 Pandas 数据框,其中列名“A”具有日期和时间值(到目前为止,它是字符串类型)。

A 栏 B 栏
2024-07-11 13:09:37.466 PC2
2024-07-11 13:24:43.03 PC1
2024 年 5 月 6 日 22:49:50 PC5

我正在尝试从时间中删除毫秒,并且只有一种格式,即 %Y-%m-%d %H:%M:%S。所以输出应该如下所示:

A 栏 B 栏
2024-07-11 13:09:37 PC2
2024-07-11 13:24:43 PC1
2024-05-06 22:49:50 PC5

将 A 列转换为日期时间类型,这样我就可以稍后按日期时间排序

我尝试了以下解决方案,但都给出了错误。我认为是由于以毫秒为单位的不同位数

df['Column A'] = pd.to_datetime(Df['event time']).dt.strftime('%Y-%m-%d %H:%M:%S')
df['Column A'] = Df['Column A'].apply(lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S'))
python python-3.x pandas
2个回答
0
投票

首先,请在发布问题时附上实际的错误回溯。

strptime 需要给出字符串的格式。你不能仅仅忽略毫秒。获得日期时间对象后,您可以将毫秒设置为零或使用 strftime 生成仅包含您想要的位的字符串。

我不确定 pd.to_datetime 期望什么,但我怀疑您的问题可能是因为您的日期之一采用人类可读的格式,月份作为字符串。您可能需要使用日期时间解析函数,该函数比 pandas 提供的任何函数更宽松。不过,它可能会慢很多。


0
投票
# Convert string to date-time format
df['Column A'] = pd.to_datetime(df['Column A'], format='%Y-%m-%d %H:%M:%S:%f')

#convert %Y-%m-%d %H:%M:%S:%f into %Y-%m-%d %H:%M:%S format as str
df['Column A'] = df['Column A'].dt.strftime('%Y-%m-%d %H:%M:%S')
© www.soinside.com 2019 - 2024. All rights reserved.