gpt4 book ai didi

Python:如何根据不同的列获取值的总和

转载 作者:行者123 更新时间:2023-12-01 09:24:03 25 4
gpt4 key购买 nike

我有一个数据帧df,如下所示:

df  name     city
0 John New York
1 Carl New York
2 Carl Paris
3 Eva Paris
4 Eva Paris
5 Carl Paris

我想知道不同城市的总人数

df2  city      number
0 New York 2
1 Paris 3

或者城市中同名的人数

df2    name     city      number
0 John New York 1
1 Eva Paris 2
2 Carl Paris 2
3 Eva New York 0

最佳答案

我相信需要GroupBy.size :

df1 = df.groupby(['city']).size().reset_index(name='number')
print (df1)
city number
0 New York 2
1 Paris 4
<小时/>
df2 = df.groupby(['name','city']).size().reset_index(name='number')
print (df2)
name city number
0 Carl New York 1
1 Carl Paris 2
2 Eva Paris 2
3 John New York 1

如果需要所有组合,一个解决方案是添加 unstackstack:

df3=df.groupby(['name','city']).size().unstack(fill_value=0).stack().reset_index(name='count')
print (df3)
name city number
0 Carl New York 1
1 Carl Paris 2
2 Eva New York 0
3 Eva Paris 2
4 John New York 1
5 John Paris 0

或者reindexMultiIndex.from_product :

df2 = df.groupby(['name','city']).size()
mux = pd.MultiIndex.from_product(df2.index.levels, names=df2.index.names)
df2 = df2.reindex(mux, fill_value=0).reset_index(name='number')
print (df2)
name city number
0 Carl New York 1
1 Carl Paris 2
2 Eva New York 0
3 Eva Paris 2
4 John New York 1
5 John Paris 0

关于Python:如何根据不同的列获取值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50584887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com