gpt4 book ai didi

python - groupby中的pandas聚合函数-默认选项?

转载 作者:行者123 更新时间:2023-12-01 00:17:30 26 4
gpt4 key购买 nike

我有以下数据集( df )。我想使用品牌作为我的索引对其进行 groupby,获取 worker 和值(value)列的平均值以及提供者列的第一个计数。

brand   workers value   provider
H&M 322 56 mark
H&M 450 433 mark
Lindex 678 233 luke
Lindex 543 456 luke
Levi 234 32 chris
Levi 789 12 chris
现在我能
df = df.groupby('brand')['workers', 'value', 'provider'].agg({'workers': mean,  'value':mean, 'provider' : first).reset_index()
但考虑到我的真实数据集作为更多列的方式,我想取平均值并且我不想指定每个列,有没有更好的方法来声明默认函数?
有点“取所有非字符串列的平均值和字符串列的第一个观察值?”

最佳答案

不,但是编写一些代码来为你做这件事并不难。

f = dict.fromkeys(df, 'mean')
f.update(
dict.fromkeys(df.columns[df.dtypes.eq(object)], 'first'))
print(f)
{'brand': 'first', 'provider': 'first', 'value': 'mean', 'workers': 'mean'}

然后你通过 fagg .
df = df.groupby('brand')['workers', 'value', 'provider'].agg(f)

如果要重置索引,则必须从 f 中删除石斑鱼。 .
del f['brand']
df = df.groupby('brand', as_index=False)['workers', 'value', 'provider'].agg(f)

关于python - groupby中的pandas聚合函数-默认选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51238000/

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