gpt4 book ai didi

python - 使用 grouby 进行计数

转载 作者:太空宇宙 更新时间:2023-11-04 05:46:52 26 4
gpt4 key购买 nike

我有一个具有以下结构的文件(大约有 10K 行):

User Destination Country
123 34578 US
123 34578 US
345 76590 US
123 87640 MX
890 11111 CA
890 88888 CA
890 99999 CA

每个用户可以前往位于不同国家/地区的多个目的地。我需要找出用户前往的独特目的地的数量、独特目的地的中位数和均值。国家也一样。我不知道如何使用 groupby 来实现这一点。我设法通过将所有内容放在嵌套字典中来获取统计信息,但我觉得使用 pandas 数据帧和 groubpy 可能有更简单的方法。

我不是在寻找每个 groupby 部分的计数。我正在寻找类似的东西:平均而言,用户访问 X 个目的地和 Y 个国家/地区。因此,我正在寻找所有 groupby 结果的汇总统计数据。

编辑。这是我的字典方法:

from collections import defaultdict
test=lambda: defaultdict(test)
conn_l=test()
with open('myfile') as f:
for line in f:
current=line.split(' ')
s = current[0]
d = current[1]
if conn_l[s][d]:
conn_l[s][d]+=1
else:
conn_l[s][d]=1

lengths=[]
for k,v in conn_l.items():
lengths.append(len(v))

最佳答案

我认为这可能比乍一看要难一些(或者可能有比我下面做的更简单的方法)。

ser = df.groupby('User')['Destination'].value_counts()

123 34578 2
87640 1
345 76590 1
890 11111 1
99999 1
88888 1

value_counts() 的输出是一个系列,然后您可以再次执行 groupby 以获得唯一目的地的计数。

ser2 = ser.groupby(level=0).count()

User
123 2
345 1
890 3

这是为了清楚起见,但您可以在一行中完成所有操作。

df.groupby('User')['Destination'].value_counts().groupby(level=0).count()

使用 ser2,您应该能够完成所有其他事情。

ser2.median()
ser2.mean()

关于python - 使用 grouby 进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31859206/

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