我想將日期從“2021 年 9 月 17 日”格式轉換為“17.09.2021”。我做了一個函式,但我不能將它應用到系列中。我究竟做錯了什么?
def to_normal_date(bad_date):
datetime.strptime(bad_date, '%b %d, %Y')
return s.strftime('%Y-%m-%d')
df['normal_date'] = df['date'].apply(to_normal_date)
當我嘗試將它應用于系列時,我收到一個 ValueError。但它可以正常作業:
to_normal_date('Sep 16, 2021')
uj5u.com熱心網友回復:
- 使用
pd.to_datetime的“日期”一欄轉換為datetime格式。指定errors="coerce"會將格式不正確的日期轉換為NaN值而不是引發錯誤。 - 轉換為使用所需的格式
.strftime與.dt訪問。
df["normal_date"] = pd.to_datetime(df["date"], format="%b %d, %Y", errors="coerce").dt.strftime("%d.%m.%Y")
>>> df
date normal_date
0 Sep 17, 2021 17.09.2021
1 Oct 31, 2021 31.10.2021
2 Nov 19, 2021 19.11.2021
3 Dec 25, 2021 25.12.2021
uj5u.com熱心網友回復:
嘗試:
pd.to_datetime(df['date'], format='%b %d, %Y').dt.strftime('%Y-%m-%d')
如果所有df['date']條目都與“2021 年 9 月 17 日”的日期模式相匹配,它應該可以作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369395.html
