gpt4 book ai didi

python - 数据框中一对值的出现次数

转载 作者:太空狗 更新时间:2023-10-29 21:36:00 25 4
gpt4 key购买 nike

我有包含以下列的数据框:

Name, Surname, dateOfBirth, city, country

我很想知道姓名和姓氏最常见的组合是什么,以及出现的次数。也很高兴看到前 10 名组合的列表。

我对顶级的想法是:

mostFreqComb= df.groupby(['Name','Surname'])['Name'].count().argmax()

但我认为它没有给我正确的答案。帮助将不胜感激!

谢谢,不

最佳答案

有关以下解决方案的性能影响,请参阅 Pandas groupby.size vs series.value_counts vs collections.Counter with multiple series .下面首先介绍它们的最佳性能。

GroupBy.size

您可以使用 GroupBy.size 使用 (Name, Surname) 元组索引创建一系列计数:

res = df.groupby(['Name', 'Surname']).size().sort_values(ascending=False)

通过对这些值进行排序,我们可以很容易地提取出最常见的:

most_common = res.head(1)
most_common_dups = res[res == res.iloc[0]].index.tolist() # handles duplicate top counts

value_counts

另一种方法是构建一系列元组,然后应用 pd.Series.value_counts:

res = pd.Series(list(zip(df.Name, df.Surname))).value_counts()

结果将是一系列按姓氏组合索引的计数,从最常见到最少排序。

name, surname = res.index[0]  # return most common
most_common_dups = res[res == res.max()].index.tolist()

collections.Counter

如果你想创建一个包含(name, surname):counts条目的字典,你可以通过collections.Counter来实现:

from collections import Counter

zipper = zip(df.Name, df.Surname)
c = Counter(zipper)

Counter 具有一些有用的方法,例如 most_common,您可以使用它们来提取结果。

关于python - 数据框中一对值的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50310226/

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