gpt4 book ai didi

python - Groupby、计数并计算 Pandas 中的中位数

转载 作者:行者123 更新时间:2023-12-01 02:06:07 29 4
gpt4 key购买 nike

我有这个数据框:

df:
type . size . margin . height
0 . A . 2 . 5 . 1
1 . A . 3 . 4 . 1
2 . B . 1 . 1 . 3

我想按类型分组,计算每种类型的公司数量并计算所有列的中位数。

我知道计数是这样的

df=df.groupby('type').count('type')

但是有没有一种方法可以使用一个衬垫并将所有内容放在同一个 df 中?

类似于:

df=df.groupby('type').calculate_medians_and_counts

它应该看起来像这样:

type    count   size   margin   height
A 2 2.5 4.5 1
B 1 1 1 3

(size, margin and height are the medians from df)

最佳答案

使用agg按字典:

d = {'size':'median', 'margin':'median', 'height':'median', 'type':'size'}

或者,如果可以有很多列,则动态创建dict:

d = dict.fromkeys(df.columns.difference(['type']), 'median')
d['type'] = 'size'
<小时/>
df = df.groupby('type').agg(d).rename(columns={'type':'count'}).reset_index()

另一种选择 join :

df = df.groupby('type').median().join(df.type.value_counts().rename('count')).reset_index()
<小时/>
print (df)
type margin size height count
0 A 4.5 2.5 1 2
1 B 1.0 1.0 3 1

关于python - Groupby、计数并计算 Pandas 中的中位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49052311/

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