python - 时间戳解析

标签 python pandas dataframe parsing timestamp

我有一个巨大的数据集,我正在尝试解析时间戳列以具有以下格式: YYYY-MM-DD HH:MM:SS:DEC 但我在数据框中的输出类似于:210309_131046520_11

因此:我想将输出列拆分为以下列:

date,  day,  month,  year, dec,  hh,  mm, ss

例如:210309_131046520_11

日期 2009年3月21日
09
03
年份2021
12月 520
hh 13
毫米 10
ss 46

我尝试使用datetime模块,但似乎没有任何帮助。有人可以帮忙吗?

我的时间戳列示例:

0      210309_131046520_11.sgy
1      210309_131046520_05.sgy
2      210309_131046528_02.sgy
3      210309_131046528_12.sgy
4      210309_131049712_07.sgy
...
162    210309_132658584_07.sgy
163    210309_132659632_10.sgy
164    210309_132701232_05.sgy
165    210309_132704256_02.sgy
166    210309_132707136_12.sgy

我的日期列示例:

0      131046520
1      131046520
2      131046528
3      131046528
4      131049712
...
162    132658584
163    132659632
164    132701232
165    132704256
166    132707136

我尝试过的一件事:

使用分割:

s_df["date"] = s_df["timestamp"].apply(lambda row: row.split("_")[1])

输出:

TypeError: list indices must be integers or slices, not str

最佳答案

您可以使用 datetime 的 strptime 来解释标准库中的日期:

from datetime import datetime as dt
dt.strptime('210309_131045620', '%y%m%d_%H%M%S%f')

Out: datetime.datetime(2021, 3, 9, 13, 10, 45, 620000)

在 pandas 数据框中,使用内置函数可以更有效地实现这一点,它符合相同的格式化语法:

import pandas as pd
pd.to_datetime(df['date'], format='%y%m%d_%H%M%S%f')

有关自定义格式字符串的详细信息,请参阅 strftime 引用:https://strftime.org

关于python - 时间戳解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66942490/

相关文章:

python - 我想删除某一列的结果为 "unknown"的所有行

python - py2exe:排除要导入其所有部分的包的部分

python - html.parser 奇怪的行为

python - 使用 subprocess.Popen() 打开程序时出错

python - 如何在 pandas 中编写 SQL 窗口函数

python - 用列表中的值替换 pandas.DataFrame 的 NaN 值

python - Pandas 合并数据框列

python - Dask 在 Groupby 上复制 Pandas 值

r - 更改矩阵/数据框中的行顺序

python - 使用 python-oauth2 签署请求