gpt4 book ai didi

python - 如何在 Pandas (python 3) 中组合不同的数据集?

转载 作者:行者123 更新时间:2023-12-01 05:03:34 26 4
gpt4 key购买 nike

我的问题围绕着在 pandas 中使用 groupby 函数并尝试合并两个数据集。

现在我的数据如下所示:

Name     Price
James 2
Jon 3
James 0
Bob 4
Bob 0

我需要的是创建一个包含三个指标的数据集:每个名称的价格总和、每个名称的价格为零的实例数以及每个名字出现的次数..

所以理想情况下输出应该是这样的

Name     Price   Count of Frequency      Count of Zero
James 2 2 1
Jon 3 1 0
Bob 4 1 1

现在我的代码看起来像这样:

newlist = df1.join(s)
countif = newlist.groupby(['KW']).size().reset_index()
group = newlist.groupby(['KW'])
sumif = group.sum().reset_index()
zero = newlist[newlist['Price'] == 0.0]
zero2 = zero.groupby(['KW']).size().reset_index()
concat = pd.concat([sumif,countif,zero2], axis=1)

但这有很多缺点:它不符合Python语言且效率低下,它会创建 KW 列的重复行,并且它不会以统一的方式排列所有数据,因为当“zero2”变量仅显示那些 KW 时,价格是 0 所以我得到这样的结果:

 KW      Price      KW       0      KW       0
James 2 james 2 James 1
Bob 4 Bob 2 Bob 1

最佳答案

您正在寻找带有 apply 的 groupby。

def func(x):
return pd.Series({'Obs': len(x)
, 'Sum': x.price.sum()
, 'Zeros': len(x[x.price==0])})

用法:

df.groupby(["name"]).apply(func)

关于python - 如何在 Pandas (python 3) 中组合不同的数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25510044/

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