python - 从数据框列python中删除非日期值
问题描述
我有一个头部看起来像的数据框(df):
Date
0 01/04/2015
1 01/09/1996
2 N/A
3 12/05/1992
4 NOT KNOWN
有没有办法删除非日期值(不是行)?在此示例中,生成的框架如下所示:
Date
0 01/04/2015
1 01/09/1996
2
3 12/05/1992
4
我能看到的所有示例都希望我删除这些行,我想保留它们。
解决方案
pd.to_datetime
和errors='coerce'
df.assign(Date=pd.to_datetime(df.Date, errors='coerce'))
Date
0 2015-01-04
1 1996-01-09
2 NaT
3 1992-12-05
4 NaT
如果你愿意,你可以用空字符串填充它们NaT
(虽然我不推荐它)
df.assign(Date=pd.to_datetime(df.Date, errors='coerce').fillna(''))
Date
0 2015-01-04 00:00:00
1 1996-01-09 00:00:00
2
3 1992-12-05 00:00:00
4
如果您想保留数据框中的所有内容,只需将看起来不像日期的内容替换为''
df.assign(Date=df.Date.mask(pd.to_datetime(df.Date, errors='coerce').isna(), ''))
Date
0 01/04/2015
1 01/09/1996
2
3 12/05/1992
4
推荐阅读
- python - 在 macos 上的 anaconda 上安装 python 包
- python - 在python中计算反对数?np.exp / math.exp 不起作用
- apache-kafka - 从 kafka 消费,没有无限循环
- r - cbind 在字符串向量中使用 colnames 的多个数据帧
- amazon-web-services - 使用与调用 API Gateway 端点的用户相同的权限运行 Lambda 函数
- excel - 重新创建复杂的公式
- python - 在python中列出一个csv文件?
- c# - 在 Xamarin Forms 中创建本地设置
- android - 在 Flutter 中从子小部件修改静态变量
- typescript - 嵌套箭头函数打字稿语法