Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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 加速Pandas-加速将整个列中的unix时间戳更改为当前日期_Python_Pandas - Fatal编程技术网

Python 加速Pandas-加速将整个列中的unix时间戳更改为当前日期

Python 加速Pandas-加速将整个列中的unix时间戳更改为当前日期,python,pandas,Python,Pandas,我有一个带有列的数据帧,该列的时间表示为unix时间戳。我想解析整个列,将时间表示为datetime(年-月-日-小时-分-秒)。我使用foor循环完成了这项工作,但对于大型数据帧,这需要很长时间。我可以加快速度吗?或者我可以使用一些内置的Pandas函数来代替 for idx, row in df.iterrows(): df.loc[idx, "time"] = pd.to_datetime(row['time'], unit='s') 可以通过直接访问列并指定格式

我有一个带有列的数据帧,该列的时间表示为unix时间戳。我想解析整个列,将时间表示为datetime(年-月-日-小时-分-秒)。我使用foor循环完成了这项工作,但对于大型
数据帧
,这需要很长时间。我可以加快速度吗?或者我可以使用一些内置的Pandas函数来代替

for idx, row in df.iterrows():
            df.loc[idx, "time"] = pd.to_datetime(row['time'], unit='s')

可以通过直接访问列并指定格式来执行此操作:

df['time'] = pd.to_datetime(df['time'], format='%Y-%m-%d-%H-%M-%S')

d_kennetz的答案是正确的,但在这种情况下,
df.at()
应该比
df.loc()
更适合您。我愿意打赌
df.at()
的速度至少是
df.loc()的1000倍:


在这种情况下,这不是我推荐的解决方案,但这些信息可能对您或以后的其他人有用。

不要循环,使用
df['time']=pd.to_datetime(df['time'],unit='s')
可能重复的
for idx, row in df.iterrows():
            df.at[idx, "time"] = pd.to_datetime(row['time'], unit='s')