Python 加速Pandas-加速将整个列中的unix时间戳更改为当前日期
我有一个带有列的数据帧,该列的时间表示为unix时间戳。我想解析整个列,将时间表示为datetime(年-月-日-小时-分-秒)。我使用foor循环完成了这项工作,但对于大型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') 可以通过直接访问列并指定格式
数据帧
,这需要很长时间。我可以加快速度吗?或者我可以使用一些内置的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')