Python 将csv时间戳从UTC转换为夏威夷时区

Python 将csv时间戳从UTC转换为夏威夷时区,python,csv,datetime,python-dateutil,Python,Csv,Datetime,Python Dateutil,我有一个时间戳为UTC的csv数据,但需要夏威夷当地时间(UTC-10)。理想情况下,我会在csv中添加一个新列,其中夏威夷时间与UTC时间并列,然后是数据 ,日期和时间在第一列。格式有点奇怪,因为它的“年-月-日期-小时/分钟/秒”与正常格式一样,但后面跟着“UTC”,我认为这可能会给我带来问题 我有一些简单的代码来提取时间列,将其分配给UTC时间(因为时间戳的时区未知),然后将其转换为UTC-10 import pandas as pd import os from datetime imp

我有一个时间戳为UTC的csv数据,但需要夏威夷当地时间(UTC-10)。理想情况下,我会在csv中添加一个新列,其中夏威夷时间与UTC时间并列,然后是数据

,日期和时间在第一列。格式有点奇怪,因为它的“年-月-日期-小时/分钟/秒”与正常格式一样,但后面跟着“UTC”,我认为这可能会给我带来问题

我有一些简单的代码来提取时间列,将其分配给UTC时间(因为时间戳的时区未知),然后将其转换为UTC-10

import pandas as pd
import os
from datetime import datetime
from dateutil import tz

# read the file in csv 
K = pd.read_csv("kona_python.csv")

# time series data selection
UTCtime = K.iloc[:,0] 

# access timezones:
utc_timezome = tz.gettz('UTC')
hawaii_timezone = tz.gettz('US/Hawaii')

# feeding in the csv column data
utc = UTCtime

# set the datetime object to the UTC timezone
utc = utc.replace(tzinfo = utc_timezome)

# convert time zone to Hawaii
hawaii = utc.astimezone(hawaii_timezone)
但是,它使用运行,其中不需要tzinfo。我是否正确使用dateutil?还是有更简单的方法?非常感谢任何帮助

更新-csv示例:

UTC timestamp   A   B   C   D   E   F
2018-07-20 22:22:06 UTC 1.27    21.64   1.11    0.37    22.31   0.33
2018-07-20 22:23:25 UTC 1.4 21.82   0.33    0.75    22.59   0.33
2018-07-20 22:24:45 UTC 2.09    20.31   0.93    1.55    21.05   0.4
2018-07-20 22:26:05 UTC 0.8 21.34   0.93    1.36    20.89   0.4
2018-07-20 22:27:24 UTC 0.4 19.93   0.93    1.37    22.58   0.24

上面的代码有几个问题(例如utc是一系列字符串,而不是时间戳,那么替换函数不能像时区一样应用于一系列字符串),请参阅下面的工作代码:

import pandas as pd
import os
from datetime import datetime
from dateutil import tz

# read the file in csv 
K = pd.read_csv("a.csv")

# time series data selection
UTCtime = K.iloc[:,0] 

# access timezones:
hawaii_timezone = tz.gettz('US/Hawaii')

# convert the string to datime
utc = UTCtime.apply(lambda x : datetime.strptime(x,"%Y-%m-%d %H:%M:%S UTC"))

# convert time zone to Hawaii (first localize to utc)
hawaii = utc.apply(lambda x : x.tz_localize('utc').astimezone(hawaii_timezone))

print (hawaii)
已使用此csv测试代码:

col,col,col
2018-07-20 22:22:06 UTC,a,b

谢谢vladmihaisima!不幸的是,我仍然收到一条错误消息:ValueError:时间数据“UTC时间戳”与格式“%Y-%m-%d%H:%m:%S UTC”不匹配有什么原因吗?据我所知,excel时间戳“2018-07-20 22:26:05 UTC”与该格式匹配…?我没有想到任何明显的东西。要取得进展,我建议您将csv的前2-3行放入问题中,因为它在磁盘上,这样我可以尝试重现您的问题。你也可以试着用我在答案中输入的例子来检查……嗨,弗拉德米海西玛,我如何将csv输入到问题中?我找不到一种方法来给你一个实际的文件…如果它是一个逗号分隔的文件(可能),你可以用文本编辑器打开它并粘贴原始问题中的前4-5行(不需要全部)(作为新代码)。从文件的外观看,它不是逗号分隔的,而是选项卡分隔的。我建议尝试使用K=pd.read\u csv(“kona\u python.csv”,sep=“\t”)