代码之家  ›  专栏  ›  技术社区  ›  Adrian Keister

Python/Pandas:希望一天中的不同时间在数据帧索引中按唯一的DateTimes排序

  •  1
  • Adrian Keister  · 技术社区  · 6 年前

    pruned_results.txt 看起来是这样的:

    2018-08-01 08:41:08, Wait for OK to Measure
    2018-08-01 09:02:26, Wait for OK to Measure
    2018-08-01 10:49:06, Wait for OK to Measure
    2018-08-01 14:19:16, Wait for OK to Measure
    2018-08-01 21:46:23, Wait for OK to Measure
    2018-08-02 01:11:06, Wait for OK to Measure
    2018-08-02 02:47:11, Wait for OK to Measure
    2018-08-02 04:05:41, Wait for OK to Measure
    

    我要作为数据帧中的DateTime索引导入的第一列。第二列是数据,我称之为 State . 我有以下代码:

    import pandas as pd
    
    df = pd.read_csv("pruned_result.txt", header=None, index_col=0)
    df.index = pd.to_datetime(df.index)
    df.columns = ['State']
    df.index.names = ['Timestamp']
    

    到目前为止,还不错。事实证明,我实际上有一两行具有相同的时间戳。这些对我来说并不重要。所以我想先把这些复制品放下来,然后再转到 列。我遇到的问题是,很明显,如果行的日期相同,它们就被认为是重复的。但我希望只有当它们一直匹配到一天中的同一秒时,它们才被认为是重复的。也就是密码

    df.drop_duplicates(keep='first', inplace=True)
    

    删除太多的行(在这个命令之后我只剩下六行!)。如何更改此行为,以便只将重复项拖放到第二个?

    谢谢你的时间!

    1 回复  |  直到 6 年前
        1
  •  2
  •   ALollz    6 年前

    drop_duplicates 'State' . 您希望保留不重复的索引,因此应该使用 pandas.Index.duplicated DataFrame

    df[~df.index.duplicated(keep='first')]