我正在使用一个数据帧,它有一个日期列,日期格式不规则,即:
date
0 1991
1 1970
2 1991/01/01
3 1996-01-01
4 1996-06-30
5 1995-12-31
6 1997-01-01
7 1970/1/1
8 1996-01-01
9 1997-01-01
10 1996-01-01
如何从date
中提取year only,以获得标准格式XXXX的新列year
,该列仅表示年份
year
0 1991
1 1970
2 1991
3 1996
4 1996
5 1995
6 1997
7 1970
8 1996
9 1997
10 1996
使用df.date.unique()
,我得到以下输出:
array([2015, 2008, 2021, 1999, 2001, 2000, 1997, 1995, 1998,
datetime.datetime(1905, 7, 2, 0, 0),
datetime.datetime(1905, 7, 7, 0, 0),
datetime.datetime(2012, 10, 1, 0, 0),
datetime.datetime(2010, 8, 1, 0, 0),
datetime.datetime(2009, 1, 1, 0, 0), '2019', 1992, ...], dtype=object)
我使用以下代码,但此列中仅缺少年份日期:
df['date'] = pd.to_datetime(df['date'], errors='coerce').astype(str).replace("NaT", "")
df['year'] = pd.to_datetime(df['date']).dt.year
# df['year'] = pd.to_datetime(df['date']).dt.to_period('Y')
有人能帮我吗?谢谢
在示例数据中,所有日期时间都被正确解析,因此添加了^{} :
另一个想法是将值转换为字符串,并对长度为} :
4
的整数使用^{相关问题 更多 >
编程相关推荐