【发布时间】:2021-07-23 04:10:32
【问题描述】:
我有一系列 40 年的数据,格式为 stn;yyyymmddhh:rainfall。我想将数据转换为 datetime64 格式。当我使用以下代码将其转换为日期时间时,我得到以下格式 pandas._libs.tslibs.timestamps.Timestamp 但是,我需要它采用 pandas 日期时间格式。基本上,我想将例如 numpy.int64 的 1981010100 转换为 datetime64。
import pandas as pd
df = pd.read_csv('data.txt', delimiter = ";")
df['yyyy'] = df['yyyymmddhh'].astype(str).str[:4]
df = pd.to_datetime(data.yyyy, format='%Y-%m-%d')
Stn;yyyymmddhh;rainfall
xyz;1981010100;0.0
xyz;1981010101;0.0
xyz;1981010102;0.0
xyz;1981010103;0.0
xyz;1981010104;0.0
xyz;1981010105;0.0
xyz;1981010106;0.0
xyz;1981010107;0.0
xyz;1981010108;0.0
xyz;1981010109;0.4
xyz;1981010110;0.6
xyz;1981010111;0.1
xyz;1981010112;0.1
xyz;1981010113;0.0
xyz;1981010114;0.1
xyz;1981010115;0.6
xyz;1981010116;0.0
xyz;1981010117;0.0
xyz;1981010118;0.2
xyz;1981010119;0.0
xyz;1981010120;0.0
xyz;1981010121;0.0
xyz;1981010122;0.0
xyz;1981010123;0.0
xyz;1981010200;0.0
【问题讨论】:
-
请提供预期的minimal, reproducible example (MRE)。我们应该能够复制和粘贴您的代码的连续块,执行该文件,并重现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和所需的输出来测试我们的建议。请include a minimal data frame 作为您的 MRE 的一部分。
-
请找到添加的示例
-
请遵循链接的发布指南。
-
嗨,Dawar,您也可以查看我的解决方案。您不需要额外的
.dt.strftime来将日期格式化为您想要的格式。默认的 datetime64 显示格式已经是您想要的格式。如果您不想修改现有列yyyymmddhh,您可以使用另一列来保存它。我的解决方案应该更简单,并满足您的要求。 -
非常感谢!是的,它确实有效
标签: python pandas timestamp datetime-format numpy-ndarray