繁体   English   中英

Pandas GroupBy 给定列的计数

[英]Pandas GroupBy Count of a give Column

我想使用聚合函数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]
               })

在此处输入图片说明

输出格式就像

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()

尚无准确信息

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM