python - 在数据框中删除 X 列值为日期时间的行
问题描述
我需要删除列 X 值为日期时间的行。
我试过这个
from pandas.api.types import is_datetime64_any_dtype as is_datetime
indexNames = df[is_datetime(df['Column X'])].index
df.drop(indexNames, inplace=True)
但它返回
关键错误:假
下面的这个也不起作用(没有错误)
indexNames = df[df['Column X'] == is_datetime(df['Column X'])].index
我仍然有这样的值 datetime.datetime(2016, 6, 29, 8, 24, 19)
我发现了一个相关的问题,但倒置的Pandas 删除了所有不是“日期时间”类型的行
你有什么想法吗?
解决方案
使用to_datetime
witherrors='coerce'
将非 datetimelike 转换为s,因此按inNaN
过滤:Series.isna
boolean indexing
df = df[pd.to_datetime(df['Column X'], errors='coerce').isna()]
但有时熊猫会识别一些整数,例如2000
日期时间,因此如果可能更准确的是指定日期时间的格式,例如这里YYYY-MM-DD
:
df = df[pd.to_datetime(df['Column X'], errors='coerce', format='%Y-%m-%d').isna()]
推荐阅读
- r - 一次将因子水平和标签应用于多个列的功能
- dart - 如何用两个按钮填充行?
- pycharm - 缩进大小的项目特定设置?
- php - 根据 wordpress 用户 ID 显示 html 数据
- php - 使用 eval() 按 wordpress 的多个条件对多个数组进行排序
- angular - rxjs 条件 startWith
- java - 在 Java 编程中使用 Euler 求解常微分方程
- swift - 清除和恢复 UITextField 中的占位符
- java - 使用 bytebuddy 是否可以增强带有特定属性值的注释字段?
- linux - 在 perl 上打印包含 utf-8 字节序列的字符串