python - Date 和时间转换使用 Pandas & Python 创建 Ts

我正在尝试使用我现有的数据和时间数据来获取 Ts,看起来像

(Pdb) df[0][:7] 
0    [Data & Time]
1     Jan 01 08:00:01.193
2     Jan 01 08:00:01.275
3     Jan 01 08:00:01.294
4     Jan 01 08:00:01.335
5     Jan 01 08:00:01.357
6     Jan 01 08:00:01.392
Name: 0, dtype: object

因此,使用上面的数据,我打算用 value 插入另一列“Ts”,例如 df[0][i] - df[0][i-1]

所以计划是

  1. 将数据分成两列 Jan 01 08:00:01.193 -> 01/01 08:00:01.193
  2. 插入新列“Ts”,总共构成 3 列。

我正在研究正则表达式来拆分列,但我想知道是否可以在不使用 for 循环的情况下访问和执行拆分所有数据?我对矢量化知之甚少,但我无法想象如何整合正则表达式......?

回答1

给定一个格式正确的 DataFrame:

timestamp
0  Jan 01 08:00:01.193
1  Jan 01 08:00:01.275
2  Jan 01 08:00:01.294
3  Jan 01 08:00:01.335
4  Jan 01 08:00:01.357
5  Jan 01 08:00:01.392

我们可以先将其转换为 datetime

df.timestamp = pd.to_datetime(df.timestamp, format='%b %d %H:%M:%S.%f')

然后创建两个新列:

df['day/month'] = df.timestamp.dt.strftime('%d/%m')
df['time'] = df.timestamp.dt.time

输出:

timestamp day/month             time
0 1900-01-01 08:00:01.193     01/01  08:00:01.193000
1 1900-01-01 08:00:01.275     01/01  08:00:01.275000
2 1900-01-01 08:00:01.294     01/01  08:00:01.294000
3 1900-01-01 08:00:01.335     01/01  08:00:01.335000
4 1900-01-01 08:00:01.357     01/01  08:00:01.357000
5 1900-01-01 08:00:01.392     01/01  08:00:01.392000

编辑:

顺便说一句,这不是正则表达式。它们是https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes

相似文章

随机推荐

最新文章