繁体   English   中英

Pandas:select 行与列数据类型

[英]Pandas: select rows with column datatype

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

有没有办法让我 select 所有在时间戳列中具有非日期时间 object 的行? 我想运行 pd.to_datetime 将这些行的时间戳列转换为日期时间对象。

内置的select_dtypes不符合我的要求。 这个库 function 选择(不)具有某种类型的列,但我想 select 给定列值是(不是)特定类型的行。

例子:

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."""

这样的事情怎么样(假设df是您的 DataFrame 并且“时间戳”是有问题的列)?

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

然后使用idx切片你的 DataFrame

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM