Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.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将时间戳转换为ISO 8601在循环中还原为1970_Python_Timestamp_Iso8601 - Fatal编程技术网

Python将时间戳转换为ISO 8601在循环中还原为1970

Python将时间戳转换为ISO 8601在循环中还原为1970,python,timestamp,iso8601,Python,Timestamp,Iso8601,我正在尝试循环将数据帧中的一列时间戳转换为ISO8601格式。然而,它一直以奇怪的小时:分钟:秒回到1970年的数据。但是,如果我只选择一个时间戳并运行中间代码“tz=…iso.format()”,它就可以正常工作 df=pd.read\u csv('file.csv')) 对于范围内的i(len(df)): timestamp=df.loc[i,'timestamp'] #打印(时间戳) #forloops打印ISO 8601格式 res=[] def ISOformat(): tz=pyt

我正在尝试循环将数据帧中的一列时间戳转换为ISO8601格式。然而,它一直以奇怪的小时:分钟:秒回到1970年的数据。但是,如果我只选择一个时间戳并运行中间代码“tz=…iso.format()”,它就可以正常工作

df=pd.read\u csv('file.csv'))
对于范围内的i(len(df)):
timestamp=df.loc[i,'timestamp']
#打印(时间戳)
#forloops打印ISO 8601格式
res=[]
def ISOformat():
tz=pytz.时区(“美国/洛杉矶”)
打印(datetime.fromtimestamp(i,tz).isoformat())
对于范围内的i(len(df)):
res.append(ISOformat())
#制作ISO 8601的数据帧

iso_8601_test=pd.DataFrame({'iso_8601_time':res})
我认为您可以使用
Timestamp
函数以您想要的方式创建列。您可以使用
apply

res = df['timestamp'].apply(lambda time: pd.Timestamp(time,
                                          tz='America/Los_Angeles',unit='s').isoformat())
然后按照您的方式创建数据帧:

iso_8601_test= pd.DataFrame({'ISO_8601_time':res})
您的输出如下(输入数据中的前两个数字):

               ISO_8601_time
0  2011-12-31T16:05:00-08:00
1  2011-12-31T16:10:00-08:00