【问题标题】:Delete 2 last rows of each day in a dataframe删除数据框中每天的最后 2 行
【发布时间】:2018-10-11 01:49:46
【问题描述】:

我有一个带有多索引“日期”和“时间”的数据框。 我想删除每一天的最后 2 行。

例如:

Date           Time               colA                 colB
01/01/2018    08:00               15                   'abc'
01/01/2018    09:00               16                   'abd'
01/01/2018    11:00               17                   'abe'
01/01/2018    14:00               18                   'abf'
03/01/2018    11:30               19                   'abg'
03/01/2018    18:00               20                   'abh'
03/01/2018    19:00               21                   'abi'
03/01/2018    19:20               22                   'abj'
04/01/2018    14:00               23                   'abk'
04/01/2018    16:00               24                   'abl'
04/01/2018    17:00               25                   'abm'
04/01/2018    18:00               26                   'abn'
04/01/2018    19:00               27                   'abo'

会变成:

Date           Time               colA                 colB
01/01/2018    08:00               15                   'abc'
01/01/2018    09:00               16                   'abd'
03/01/2018    11:30               19                   'abg'
03/01/2018    18:00               20                   'abh'
04/01/2018    14:00               23                   'abk'
04/01/2018    16:00               24                   'abl'
04/01/2018    17:00               25                   'abm'

我怎样才能做到这一点?

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

假设数据框是多索引,以日期和时间为索引

df.groupby(level = 0, as_index = False).apply(lambda x: x.iloc[:-2])


                        colA colB
    Date        Time        
0   01/01/2018  08:00   15  'abc'
                09:00   16  'abd'
1   03/01/2018  11:30   19  'abg'
                18:00   20  'abh'
2   04/01/2018  14:00   23  'abk'
                16:00   24  'abl'
                17:00   25  'abm'

【讨论】:

    【解决方案2】:

    使用cumcount 避免apply

    s = df.groupby(level=0).cumcount(0)
    df[s>1]
    

                      colA   colB
    Date       Time
    01/01/2018 08:00    15  'abc'
               09:00    16  'abd'
    03/01/2018 11:30    19  'abg'
               18:00    20  'abh'
    04/01/2018 14:00    23  'abk'
               16:00    24  'abl'
               17:00    25  'abm'
    

    【讨论】:

      猜你喜欢
      • 2019-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多