我有一个包含日期字段作为文本的数据框。
我使用以下方法将日期字段转换为日期时间对象:
df['date'] = pd.to_datetime(df['date'])
正在做:
df['日期']
产生这样的东西:
0 2012-06-28 09:36:21
1 2013-05-21 14:52:57
2 2011-10-14 16:31:34
3 2011-11-11 12:51:13
4 2013-02-07 15:33:22
5 2013-01-02 14:40:08
6 2013-06-24 14:49:40
7 2013-07-15 15:29:26
8 2011-11-04 12:17:32
9 2013-04-29 17:31:43
10 2013-06-24 15:00:06
11 2012-10-22 18:23:53
12 NaT
13 NaT
14 2011-12-13 10:06:18
现在我将日期时间对象转换为日期对象:
df['date'].apply(try_convert_date)
(请参阅下面的 try_to_convert 是如何定义的)。我得到:
0 2012-06-28
1 2013-05-21
2 2011-10-14
3 2011-11-11
4 2013-02-07
5 2013-01-02
6 2013-06-24
7 2013-07-15
8 2011-11-04
9 2013-04-29
10 2013-06-24
11 2012-10-22
12 0001-255-255
13 0001-255-255
14 2011-12-13
其中“NaT”值已转换为“0001-255-255”。如何避免这种情况并在这些单元格中保留“NA”?
提前致谢
def try_convert_date(obj):
try:
return obj.date()
except: #AttributeError:
return 'NA'