计算同一组成员的有效方法

时间:2019-03-10 23:31:45

标签: sql pandas algorithm

让我们说我有一个属于组成员的数据集:

render={({ submitForm, ...restOfProps}) => {
    console.log('restOfProps', restOfProps);

    return (
        <React.Fragment>
            <Form>
            Date: <Field name="date" />
            <br />
            Type: <Field name="workoutType" />
            <br />                
            Calories: <Field name="calories" />
            <br />  
            <button type="submit">Submit</button>
            </Form>
            <hr />
            <br />
            <button type="submit" onClick={submitForm}>
            Button Outside Form
            </button>
        </React.Fragment>
    );
}}

对于每个人,我想计算至少属于同一组(包括他们自己)的不同人的数量:

Group ID | Person ID
1          1
2          1
2          2
3          1
3          3

除了使用分组ID的密钥将上面的数据集自身加入之外,还有其他更有效的方法来进行计数吗?

2 个答案:

答案 0 :(得分:1)

我认为您需要自我加入并按以下条件分组:

select t1.personid, count(distinct t2.personid)
from t t1 left join
     t t2
     on t1.groupid = t2.groupid
group by t1.personid;

Here是db <>小提琴。

答案 1 :(得分:0)

使用nunique

df.merge(df,on='GroupID').groupby('PersonID_x')['PersonID_y'].nunique().reset_index()
Out[170]: 
   PersonID_x  PersonID_y
0           1           3
1           2           2
2           3           2