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

问题描述 投票:0回答:1

我有一个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."""
python pandas datetime
1个回答
0
投票

类似这样的事情(假设df是您的DataFrame,而“ Timestamp”是所讨论的列)?

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

然后使用idx切片您的DataFrame

© www.soinside.com 2019 - 2024. All rights reserved.