繁体   English   中英

如何按两列分组,然后计算每个分组在第三列中每个唯一值的出现次数?

[英]How do I group by two columns and then count the occurrences of each unique value in a third column for each of the groupings?

我有一个唯一标识符,我想按 ["EMID"] 以及日期列 ["DateNew"] 对其进行分组。 然后我想计算 BRalpha 中每个值在每个分组中出现的次数。

数据集:

EMID 日期新 BRalpha
SIM10001 2016-06-01 腰椎
SIM10001 2016-06-01 腰椎
SIM10001 2016-07-01 腰椎
SIM10001 2016-07-01 雷神
SIM10002 2016-02-01 NSPC
SIM10002 2016-02-01 NSPC
SIM10002 2016-02-01 NSPC
SIM10002 2016-02-01 NSPC
SIM10002 2016-02-01 NSPC
SIM10003 2017-03-01 ANFT
SIM10003 2017-03-01 ANFT

所需的 output:

EMID 日期新 计数_LUMB Count_THOR Count_NSPC Count_ANFT
SIM10001 2016-06-01 2 0 0 0
SIM10001 2016-07-01 1 1 0 0
SIM10002 2016-02-01 0 0 5 0
SIM10003 2017-03-01 0 0 0 2
print(
    df.groupby(["EMID", "DateNew", "BRalpha"])
    .size()
    .unstack()
    .fillna(0)
    .astype(int)
    .add_prefix("count_")
    .reset_index()
)

印刷:

BRalpha      EMID     DateNew  count_ANFT  count_LUMB  count_NSPC  count_THOR
0        SIM10001  2016-06-01           0           2           0           0
1        SIM10001  2016-07-01           0           1           0           1
2        SIM10002  2016-02-01           0           0           5           0
3        SIM10003  2017-03-01           2           0           0           0

暂无
暂无

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

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