【问题标题】:Pandas Time Index pick largest number/last number on given day熊猫时间指数选择给定日期的最大数字/最后一个数字
【发布时间】:2015-04-08 16:50:44
【问题描述】:

我有一个看起来像这样的 Pandas DataFrame 对象:

 'Thing 1':           Actual           Predicted        Error
 Date                                                        
 2014-09-15           140.00            0.000000   140.000000
 2014-09-15           358.03          127.738344   230.291656
 2014-09-16           373.04          326.672566    46.367434
 2014-09-17           427.99          340.367941    87.622059
 2014-09-18           484.87          390.505241    94.364759
 2014-09-18           488.22          442.403505    45.816495
 2014-09-18           491.57          445.460101    46.109899
 2014-09-29           553.37          448.516697   104.853303
 2014-09-29          1329.07          504.904052   824.165948
 2014-10-01          1200.00         1212.665718    12.665718
 2014-10-01          1289.78         1094.900089   194.879911
 2014-10-07          1314.78         1176.816864   137.963136

我想删除同一天的重复条目并选择给定日期的最高值。换句话说,我想要这样的东西:

 'Thing 1':           Actual           Predicted        Error
 Date                                                        
 2014-09-15           358.03          127.738344   230.291656
 2014-09-16           373.04          326.672566    46.367434
 2014-09-17           427.99          340.367941    87.622059
 2014-09-18           491.57          445.460101    46.109899
 2014-09-29          1329.07          504.904052   824.165948
 2014-10-01          1289.78         1094.900089   194.879911
 2014-10-07          1314.78         1176.816864   137.963136

本质上,由于 DataFrame 对象的创建方式,我总是保留给定日期的最后一个条目并丢弃任何其他条目。

任何想法,我的大脑被一天的编码完全煎炸了......

【问题讨论】:

    标签: python-3.x pandas time-series dataframe anaconda


    【解决方案1】:

    您可以将group byagg 一起使用。 Agg 采用函数字典。在每个组中,最高观察值是您可以使用last 函数的最后一个观察值:

    df.groupby('Date').agg({'Actual':'last','Predicted':'last','Error':'last'})
    

    这会返回:

                   Actual      Predicted        Error
     Date           
     2014-09-15     358.03      127.738344      230.291656
     2014-09-16     373.04      326.672566      46.367434
     2014-09-17     427.99      340.367941      87.622059
     2014-09-18     491.57      445.460101      46.109899
     2014-09-29     1329.07     504.904052      824.165948
     2014-10-01     1289.78     1094.900089     194.879911
     2014-10-07     1314.78     1176.816864     137.963136
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-24
      • 2021-09-04
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多