时间戳以秒为单位返回日期时间的年份

Time Stamp is Returning Year in Seconds for Datetime

我的数据中有一个“YEAR”列。第二列是“JFK”,也就是风速。我需要转换 YEAR 列以显示任意月份和时间。但是需要保留年份。

例如,我有一些 1972 年的数据。我希望它的列显示为:

1972-01-01 00:00:00.000000000

但是,我得到的是:

1970-01-01 00:00:00.000001972

当我输入以下内容时:

winds["YEAR"] = pd.to_datetime(winds["YEAR"],errors='ignore')

出于某种原因,年份以秒为单位显示。任何帮助将不胜感激。

使用format=%Y

winds["YEAR"] = pd.to_datetime(winds["YEAR"],format='%Y')

此外,此解决方案假设您的输入是 integer/float,因为它无需格式即可正确解析字符串。

您首先需要将给定列解析为日期时间,然后将生成的日期时间格式化为字符串。

演示:

import pandas as pd

df = pd.DataFrame({'year': [1972]})
df['year'] = pd.to_datetime(df['year'], format='%Y').dt.strftime('%Y-%m-%d 00:00:00.000000000')
print(df)

输出:

                            year
0  1972-01-01 00:00:00.000000000