我有一个DataFrame,其列的时间表示为unix时间戳。我想解析整列以将时间表示为datetime(年-月-日-小时-分钟-秒)。我使用foor循环来完成此操作,但是对于大型DataFrame
,它花费了很长时间。我可以加快速度,还是可以使用一些内置的Pandas函数代替?
for idx, row in df.iterrows():
df.loc[idx, "time"] = pd.to_datetime(row['time'], unit='s')
答案 0 :(得分:2)
您可以通过直接访问该列并指定格式来做到这一点:
df['time'] = pd.to_datetime(df['time'], format='%Y-%m-%d-%H-%M-%S')
答案 1 :(得分:1)
d_kennetz的答案是正确的答案,但是知道df.at()
在这种情况下应该比df.loc()
更好。我愿意打赌df.at()
比df.loc()
快至少一千倍:
for idx, row in df.iterrows():
df.at[idx, "time"] = pd.to_datetime(row['time'], unit='s')
这不是我在这种情况下建议的解决方案,但此信息可能对您或以后的其他人有用。