gpt4 book ai didi

Python - 基于列值(或子集)的分组(或循环)

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:30 26 4
gpt4 key购买 nike

我正在使用一个包含 300 万行和 1,200 个“组”的数据集 - 让我们将它们称为姓氏。

数据集如下所示:

LastName    FirstName

Smith Rachael
Smith John
Smith Rachael
Johnson Bob
Johnson Laura
Johnson Laura

我想分别查看每个姓氏,并对每个姓氏中的名字执行一些操作。例如,我可能想找出 Smith 的姓氏中哪个名字最常见,然后将其添加为自己的列(但实际上比这复杂得多)。我需要保持所有行完好无损(换句话说,我需要保留每个史密斯和每个约翰逊)。

LastName    FirstName   HighestFreq

Smith Rachael Rachael
Smith John Rachael
Smith Rachael Rachael
Johnson Bob Laura
Johnson Laura Laura
Johnson Laura Laura

我不知道最好的方法是将数据集拆分为 1,200 个数据集,然后在最后合并在一起或进行某种循环。我对 Python 很陌生,还不知道如何正确地做到这一点。我已经弄清楚了查看各行所需的代码,现在如何一次仅查看一个姓氏。

此外,如果子集化是最好的方法,我需要在循环中命名这些集合,因为我显然不会手动命名 1,200 个数据集。

感谢您的阅读。

最佳答案

要保持返回结果的长度,可以在groupby之后使用transform,然后使用value_counts()函数与 index 获取每组中最常见的项目:

df['HighestFreq'] = (df.groupby('LastName')['FirstName']
.transform(lambda g: g.value_counts().index[0]))
df

enter image description here

关于Python - 基于列值(或子集)的分组(或循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40363347/

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