【问题标题】:Remove rows with double timestamps, which have NaN in data删除具有双时间戳的行,这些行在数据中具有 NaN
【发布时间】:2020-05-13 00:07:36
【问题描述】:

我有一个带有 pandas 日期时间的 pandas 数据框(我使用 pandas.to_datetime 创建了该日期时间)和一个变量值:

datetime value 2018-10-01 00:00:00 231 2018-10-01 00:01:00 233 2018-10-01 00:01:00 NaN 2018-10-01 00:02:00 220

我想删除带有双时间戳和 NaN 的行,我尝试了几种可能性,例如 pd.Series(df['datetime']).duplicated(keep='first'),但它并不总是第一个也不是最后一个。

【问题讨论】:

    标签: python pandas datetime duplicates nan


    【解决方案1】:

    您可以使用& 条件检查df['datetime'] 列是否为duplicated,该条件检查df['value'] 是否为nan

    df[~(df['datetime'].duplicated(keep=False) &  df['value'].isna())]
    

    【讨论】:

    • 谢谢!所以我提取了 double 和 NaN 的数据,有没有办法完全选择其他数据,或者最好先这样做,然后从 df 中删除这些行?
    • @Betty 对不起,我没有收到你的问题,它不起作用还是..? “一种完全选择其他人的方法”这是什么意思
    • 您的代码有效,它选择了 df 中所有重复且值中包含 NaN 的条目。但我实际上想从 df 中删除这些
    • 我认为@Betty 的意思是他们正在寻找与您的代码保留相反的内容,即:df[~(df['datetime'].duplicated(keep=False) & df['value'].isna())]
    • @DarrylG 哦,我明白了,谢谢 :) 是的,然后反向操作就可以了
    猜你喜欢
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    相关资源
    最近更新 更多