我date在 Covid 資料集中有一列。日期以這種格式顯示20211030(年 - 月 - 日)。
但是,在轉換該列時,所有內容都顯示為 1970。
這是我的代碼:
df["FECHA"] = pd.to_datetime(df["FECHA"], unit='s')
結果是這樣的:
0 MI PERU 1970-08-22 21:58:27
1 SAN JUAN DE LURIGANCHO 1970-08-22 19:27:09
2 YANAHUARA 1970-08-22 19:22:01
3 CUSCO 1970-08-22 22:08:41
4 PANGOA 1970-08-22 21:58:36
預先感謝您的幫助,大大的擁抱。
uj5u.com熱心網友回復:
在您的情況下,您不需要pd.to_datetime IF列包含字串:
df = pd.DataFrame({'FECHA': ['20211030']})
print(df)
# Output:
FECHA
0 20211030
使用astype:
df['FECHA'] = df['FECHA'].astype('datetime64')
print(df)
# Output:
FECHA
0 2021-10-30
但是,如果您的列的 dtypeFECHA是整數,則必須先將列轉換為字串:
df['FECHA'] = df['FECHA'].astype(str).astype('datetime64')
print(df)
# Output:
FECHA
0 2021-10-30
uj5u.com熱心網友回復:
如評論中所述,結果是由您在to_datetime函式中輸入的引數引起的。要解決此問題,您應該:
- 洗掉
unit與您的格式無關的引數 - 添加與您使用的日期格式相對應的格式引數。
因此,您的代碼應該來自:
df["FECHA"] = pd.to_datetime(df["FECHA"], unit='s')
對此:
df["FECHA"] = pd.to_datetime(df["FECHA"], format='%Y%m%d')
為了找到正確的格式,您可以在本檔案中查找對應的值。可以在此處找到與 to_datetime 函式相關的檔案。
在我們的場景中,%Y對應于以十進制數表示世紀的年份。在%m一個軟墊月(以起始零)。而%d在一天的一個月。這應該與20211030給定的(年 - 月 - 日)匹配。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369404.html
