【问题标题】:Pandas GroupBy Count of a give ColumnPandas GroupBy 给定列的计数
【发布时间】:2019-08-19 19:24:35
【问题描述】:

我想使用聚合函数 count 按日期和小时分组,并在输出中为每个不同的 ID(在列中)拆分结果。

df = pd.DataFrame({'GpID': [1,1,0,1,1,0,1,1,2,2,1,1,2,1,1,0,1,2,0,1,1],
                'HR':  [1,1,1,1,1,1,1, 2,2,2,2,1,1,1, 2,2,2,2,3,3,3],
                'Date_':  [1,1,1,2,2,2,2, 2,2,2,2,3,3,3, 3,3,3,3,3,3,3]
               })

输出格式like

df_out = pd.DataFrame({ 'HR':  [1,2,3,1,2,3],
                    'Date_':  [1,1,1,2,2,2],
                    'GpID_0': [1,2,5,1,4,2],
                   'GpID_1': [1,2,5,1,4,2],
                   'GpID_2': [4,2,5,1,4,2],

               })

试过了:

# 1st try
df_g = df.groupby(["Hr", "Date_"], observed=False).count().fillna(0).unstack()
# 2nd try
df_g = df.groupby(["Hr", "Date_","GpId"], observed=False).count().fillna(0).unstack(-1)
# 3rd try
df_g = df.groupby(["Hr", "Date_"], observed=False).count().fillna(0).unstack()

还没有准确的

【问题讨论】:

  • 你有尝试吗?
  • 试过 df_g = df.groupby(["Hr, "Date_"],observed=False).count().fillna(0).unstack() 和 df_g = df.groupby([" Hr, "Date_","GpId"],observed=False).count().fillna(0).unstack(-1) 和 df_g = df.groupby(["Hr, "Date_"],observed=False ).count().fillna(0).unstack() 注意还准确
  • 把它放在问题中。
  • 我相信你给出的输出不是你试图解释的。 e.g. There is no row where ID=2 and both Date_=1 & HR=1. And in your final df it is written 4 instead of 0 (or Nan)

标签: python pandas


【解决方案1】:

我相信你试图做这样的事情

In [1]:
import pandas as pd

df = pd.DataFrame({'GpID': [1,1,0,1,1,0,1,1,2,2,1,1,2,1,1,0,1,2,0,1,1],
                'HR':  [1,1,1,1,1,1,1, 2,2,2,2,1,1,1, 2,2,2,2,3,3,3],
                'Date_':  [1,1,1,2,2,2,2, 2,2,2,2,3,3,3, 3,3,3,3,3,3,3]
               })
df.loc[:,'Count']=1

pd.pivot_table(df, values='Count', index=['Date_', 'HR'], columns=['GpID'], aggfunc='count').fillna(0).reset_index()

Out [1]:
        Date_   HR  0   1   2
0       1       1   1   2   0
1       2       1   1   3   0
2       2       2   0   2   2
3       3       1   0   2   1
4       3       2   1   2   1
5       3       3   1   2   0

【讨论】:

    猜你喜欢
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 2019-08-10
    • 2021-05-24
    • 2013-07-14
    • 1970-01-01
    相关资源
    最近更新 更多