将亚洲/新加坡时间戳添加为Pandas数据帧中的第一列

2024-10-02 16:33:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试添加一个亚洲/新加坡时间戳作为以下pandas数据帧的第一列,并将其命名为“sdc_sequence_id”

id   col1    col2
01    A       B
02    C       D
03    E       F

预期数据帧:

sdc_sqeuence_id       id     col1    col2
2002-10-27 12:00:00   01      A      B
2002-10-27 12:00:02   02      C      D
2002-10-27 12:00:02   03      E      F

我试过这么做

df2['sdc_squence_id'] = df2['sdc_squence_id'].dt.tz_localize('Asia/Singapore'

但这给了我一个关键的错误。。 我们将不胜感激


Tags: 数据idpandas时间dt命名tzcol2
1条回答
网友
1楼 · 发布于 2024-10-02 16:33:37

试试看

df["sdc_squence_id"] = datetime.strftime(datetime.now(pytz.timezone('Asia/Singapore')), "%Y-%m-%d %H:%M:%S")

解释

  1. 获取特定时区中的本地时间:
    • 使用pytz获取时区:
tz = pytz.timezone('Asia/Singapore')
  • 这个discussion详细解释了如何获取本地时间
asia_time = datetime.now(tz)
  1. 根据需要设置本地时间格式:
    • 这个^{}做这个工作
    • tutorial详细说明了如何处理日期时间格式
formated_datetime = datetime.strftime(asia_time, "%Y-%m-%d %H:%M:%S")
  1. 将新列添加到pandadataframe
df["sdc_squence_id"] = formated_datetime

代码

# Import modules
import pandas as pd
# Get local timezone time
import pytz
# Create datetime object
from datetime import datetime


tz = pytz.timezone('Asia/Singapore')
print(tz)
# Asia/Singapore

asia_time = datetime.now(tz)
print(asia_time)
# 2020-03-24 17:22:37.409483+08:00

# Format datetime
formated_datetime = datetime.strftime(asia_time, "%Y-%m-%d %H:%M:%S")
# 2020-03-24 17:22:37

# Create new column
df["sdc_squence_id"] = formated_datetime
print(df)
#    id col1 col2       sdc_squence_id
# 0   1    A    B  2020-03-24 17:22:37
# 1   2    C    D  2020-03-24 17:22:37
# 2   3    E    F  2020-03-24 17:22:37

相关问题 更多 >