【问题标题】:How to use groupby and calculate the counts for each group如何使用 groupby 并计算每个组的计数
【发布时间】:2019-09-08 23:06:06
【问题描述】:

我有一个看起来像这样的数据框

DateTime      RunStatus hour
2018-05-08 01:45:00 0.0 1
2018-05-08 02:00:00 0.0 2
2018-05-08 02:15:00 0.0 2
2018-05-08 02:30:00 0.0 2
2018-05-08 02:45:00 0.0 2
2018-05-08 03:00:00 1.0 3
2018-05-08 03:15:00 1.0 3
2018-05-08 03:30:00 0.0 3
2018-05-08 07:45:00 0.0 7
2018-05-08 08:00:00 0.0 8
2018-05-08 08:15:00 0.0 8
2018-05-08 08:30:00 0.0 8
2018-05-08 08:45:00 0.0 8
2018-05-08 09:00:00 1.0 9
2018-05-08 09:15:00 1.0 9
2018-05-08 09:30:00 1.0 9
2018-05-08 09:45:00 0.0 9
2018-05-08 10:00:00 0.0 10
2018-05-08 10:15:00 0.0 10
2018-05-08 10:30:00 0.0 10
2018-05-08 10:45:00 0.0 10
2018-05-08 11:00:00 0.0 11
2018-05-08 11:15:00 0.0 11
2018-05-08 11:30:00 0.0 11
2018-05-08 11:45:00 0.0 11
2018-05-08 12:00:00 0.0 12
2018-05-08 12:15:00 1.0 12
2018-05-08 12:30:00 1.0 12
2018-05-08 12:45:00 1.0 12

我想使用 hours 变量进行分组,并且每个小时都希望 runstatus 为 0 且 runstatus 为 1 的次数计数

【问题讨论】:

    标签: pandas dataframe pandas-groupby


    【解决方案1】:

    修改日期时间格式后使用crosstab

    pd.crosstab(df.DateTime.dt.strftime('%Y-%m-%d %H'),df.RunStatus)
    

    【讨论】:

      【解决方案2】:

      假设你的数据框是df:

      runStatusCount = df.drop('date',axis=1)[df['RunStatus'].isin([0,1])].groupby('hour').count()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-07
        • 2013-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多