Pandas:选择列数据类型为的行

2024-04-19 20:40:48 发布

您现在位置:Python中文网/ 问答频道 /正文

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

有没有一种方法可以让我选择时间戳列中包含非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."""

Tags: 数据对象字符串类型dfdatetime格式报告
1条回答
网友
1楼 · 发布于 2024-04-19 20:40:48

类似这样的情况如何(假设df是您的数据帧,“Timestamp”是有问题的列)

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

然后使用idx对数据帧进行切片

相关问题 更多 >