串联列时相当于SQL Group By的Pandas

hlswsv35  于 2023-02-07  发布在  其他
关注(0)|答案(1)|浏览(138)

假设我有一个表,包含以下各列:名、姓、电话
就像这样:

firstname    surname    tel
alex         topol      1234
jim          jimix      2312
alex         topol      2344

现在我想找到numberoftel per person并排序,所以我用SQL写这个:

select concat(firstname,' ',surname),count(*) from wp_eqra_requests group by concat(firstname,' ',surname) order by count(*) desc

但是我用Python Pandas写这个吗?我试着用groupby但是没有成功连接两列:

numUsers = df.groupby(by=["firstname", "surname")["tel"].count()
drnojrws

drnojrws1#

与SQL类似,您可以使用add运算符将两列连接起来,然后使用groupby对值进行计数

df.groupby(df['firstname'] + ' ' + df['surname'])['tel'].count()
alex topol    2
jim jimix     1
Name: tel, dtype: int64

相关问题