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