【问题标题】:Drop Python Pandas dataframe rows based on date in index根据索引中的日期删除 Python Pandas 数据帧行
【发布时间】:2016-11-16 14:12:35
【问题描述】:

我有一个如下所示的 Python 数据框:

                        Facility   PUE   PUEraw   Servers
2016-11-14 00:00:00     6.0        NaN   1.2      5.0 
2016-11-14 00:30:00     6.0        NaN   1.2      5.0 
2016-11-14 01:00:00     6.0        NaN   1.2      5.0 

等等

如您所见,索引是日期/时间。数据框每半小时更新一次新值。

我正在尝试编写一个脚本来删除除与今天的日期相对应的行之外的所有行,为此我正在使用 date = dt.datetime.today()。但是,我很挣扎,部分原因可能是索引也包含时间。

有人有什么建议吗?或者,删除除最后 48 行之外的所有行的脚本也适用于我(最后 48 x 半小时值 = 最近一天的数据)。

【问题讨论】:

    标签: python datetime pandas dataframe


    【解决方案1】:

    您可以使用以下两个选项来提取特定日期的数据:

    df['2016-11-16']
    #                     Facility  PUE  PUEraw  Servers
    # 2016-11-16 01:00:00      6.0  NaN     1.2      5.0
    
    import datetime
    df[df.index.date == datetime.datetime.today().date()]
    #                     Facility  PUE  PUEraw  Servers
    # 2016-11-16 01:00:00      6.0  NaN     1.2      5.0
    

    【讨论】:

    • 谢谢。我没有尝试过,因为我使用了另一种方法,但它对我来说看起来不错。
    【解决方案2】:

    您始终可以使用 df.tail() 访问 DataFrame 中的最后一行

    df = df.tail(48)
    

    更多信息:

    Pandas Documentation

    【讨论】:

    • 谢谢。这完美无缺,又好又简单。
    猜你喜欢
    • 2015-04-22
    • 2016-06-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 2015-04-24
    • 2020-05-14
    相关资源
    最近更新 更多