Python 将时间和日期列转换为时间戳
我有两列——日期和时间Python 将时间和日期列转换为时间戳,python,pandas,dataframe,datetime,timestamp,Python,Pandas,Dataframe,Datetime,Timestamp,我有两列——日期和时间 date | time 2012-10-16 00:00:00 | 09:38:08-05:00 我希望将这两者结合起来,形成一个时间戳。我不知道如何处理这个问题。我应该去掉日期,添加时间,创建日期时间,然后转换为时间戳。基本上,这是的一个变体,但有UTC偏移量,所以让我们也正确地解析它。例: df = pd.DataFrame({'date': ['2012-10-16 00:00:00'],
date | time
2012-10-16 00:00:00 | 09:38:08-05:00
我希望将这两者结合起来,形成一个时间戳。我不知道如何处理这个问题。我应该去掉日期,添加时间,创建日期时间,然后转换为时间戳。基本上,这是的一个变体,但有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]
这是在熊猫数据框中吗?这些列的数据类型是什么?@MrFuppes它是数据帧,数据类型是对象。我从excel文件中读取了这些内容。好的,我添加了一个答案,其中包含一些转换(datetime->string,请参见代码中的注释),您可能不需要它们。