Добавление метки времени Азии / Сингапура в качестве первого столбца в Pandas кадре данных - PullRequest
1 голос
/ 24 марта 2020

Я пытаюсь добавить метку времени Азии / Сингапура в качестве первого столбца следующего 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'

Но это дает мне ключевую ошибку .. Помощь будет принята.

1 Ответ

1 голос
/ 24 марта 2020

Попробуйте :

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

Пояснения :

  1. Получить местное время в заданном c часовом поясе:
    • Используйте pytz , чтобы получить часовой пояс:
tz = pytz.timezone('Asia/Singapore')
  • Это обсуждение подробно объясняет как узнать местное время
asia_time = datetime.now(tz)
Отформатируйте местное время, как вы хотите:
formated_datetime = datetime.strftime(asia_time, "%Y-%m-%d %H:%M:%S")
Добавить новый столбец в панду dataframe:
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
...