Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将时间和日期列转换为时间戳_Python_Pandas_Dataframe_Datetime_Timestamp - Fatal编程技术网

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,请参见代码中的注释),您可能不需要它们。