我有两列-日期和时间。
date | time
2012-10-16 00:00:00 | 09:38:08-05:00
我希望将两者结合起来并形成一个时间戳。我不知道如何解决这个问题。我应该删除日期,添加时间并创建DateTime,然后转换为时间戳。
答案 0 :(得分:1)
基本上,这是Combine Date and Time columns using python pandas的变体,但是您具有UTC偏移量,因此我们也要正确解析它。例如:
df = pd.DataFrame({'date': ['2012-10-16 00:00:00'],
'time': ['09:38:08-05:00']})
# make sure date column is date as string dtype
df['date'] = pd.to_datetime(df['date']).dt.date.astype(str)
# make sure time column is of string dtype
df['time'] = df['time'].astype(str)
# combine date and time column (now both string dtype), then parse to datetime
df['datetime'] = pd.to_datetime(df['date'] + ' ' + df['time'])
# df['datetime']
# 0 2012-10-16 09:38:08-05:00
# Name: datetime, dtype: datetime64[ns, pytz.FixedOffset(-300)]
可选:指定时区。 UTC-5是固定偏移量,有时是不希望的。如果您知道来源的tz,则只需添加该信息即可:
df['datetime'] = df['datetime'].dt.tz_convert('US/Central')
# df['datetime']
# 0 2012-10-16 09:38:08-05:00
# Name: datetime, dtype: datetime64[ns, US/Central]
可选:直接解析为UTC。 在大多数情况下,最好使用UTC。您可以直接解析为UTC:
df['datetime'] = pd.to_datetime(df['date'] + ' ' + df['time'], utc=True)
# df['datetime']
# 0 2012-10-16 14:38:08+00:00
# Name: datetime, dtype: datetime64[ns, UTC]