我有一个巨大的数据集,我正在尝试解析时间戳列以具有以下格式:
YYYY-MM-DD HH:MM:SS:DEC
但我在数据框中的输出类似于:210309_131046520_11
。
因此:我想将输出列拆分为以下列:
date, day, month, year, dec, hh, mm, ss
例如:210309_131046520_11
date
21-03-09
day
09
month
03
year
2021
dec
520
hh
13
mm
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
我尝试过的一件事:
使用 split
:
s_df["date"] = s_df["timestamp"].apply(lambda row: row.split("_")[1])
输出:
TypeError: list indices must be integers or slices, not str
答案 0 :(得分:3)
您可以使用 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