Pandas to_datetime 方法在转换 Unix 时间戳时给出错误的年份

问题描述 投票:0回答:2

当使用 Pandas Dataframe 的 to_datetime 方法将 Unix 时间戳转换为从数据记录器收集的数据列中的格式化日期时间时,我得到了错误的年份 20 年。我检查了这篇文章和许多其他文章,但没有找到原因。

在 Pandas Dataframe 列中,我有一系列 Unix 时间戳值。使用在线 Epoch 转换器,时间戳给出正确的日期和时间,但使用 Pandas 中的 to_datetime 函数,该年份是 20 年之后。年份应该是 2024 年。其他一切都是正确的。 使用代码:

df['WS_knot_TMx'] = pd.to_datetime(df['WS_knot_TMx'], unit='s')

使用 to_datetime 方法转换时间戳值,结果如下所示:

1073924220   2004-01-12 16:17:00
1073924690   2004-01-12 16:24:50
1073924790   2004-01-12 16:26:30

但是20年过去了。 好的,我可以像这样添加 20 年:

df['WS_knot_TMx'] = df['WS_knot_TMx'].apply(lambda x: x - timedelta(days=365.25*20))

但这有点麻烦。为什么转变要等20年?

python pandas dataframe datetime unix-timestamp
2个回答
1
投票

根据 https://www.epochconverter.com/,您看到的输出是正确的 - 年份是 2004 年。您确定没有拼写错误吗?

1705082400 将是 2024-01-12 06:00:00 - 我注意到你的数据以 107 开头,而不是 170


0
投票

因此,知道 Campbell Scientific 的纪元是 1990-01-01,我所需要做的就是将原点设置如下:-

df['WS_knot_TMx'] = pd.to_datetime(df['WS_knot_TMx'], unit='s', origin=631152000)

631152000是1970年和1990年之间的差异,我得到了正确的日期。 非常感谢上面的人帮助我解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.