熊猫:选择具有列数据类型的行

时间:2020-04-13 19:55:48

标签: python pandas datetime

我有一个DataFrame,其中时间戳列包含混合类型。有些行以Unix时间戳(数字)报告时间,有些行以iso格式的字符串报告时间,其余行包含Pandas datetime对象。

我是否可以选择在timestamp列中具有非datetime对象的所有行?我想运行pd.to_datetime将这些行的timestamp列转换为datetime对象。

内置select_dtypes不能满足我的要求。该库函数选择(不)具有某种类型的列,但是我想选择给定列值为(而不是)特定类型的行。

示例:

df = pd.DataFrame({
    'time': [
        Timestamp('2019-03-31 00:00:00-0400', tz='US/Eastern'),
        '2019-01-31 12:00:00-0700',
        1551000000
    ] })

目标:

def get_not_datetime_rows(df):
    """Output the last two rows."""

1 个答案:

答案 0 :(得分:0)

这样的事情(假设df是您的DataFrame,而“ Timestamp”是有问题的列)是什么呢?

from datetime import datetime
idx = df["Timestamp"].apply(lambda x: type(x) != datetime)

然后使用idx切片您的DataFrame