gpt4 book ai didi

python - 聚合后排序和选择(Pandas)

转载 作者:行者123 更新时间:2023-12-01 01:21:24 24 4
gpt4 key购买 nike

我想聚合一个 Pandas DataFrame,以便计算每个父亲(变量 father_name)的 child 数量(变量 child_name)。数据框看起来像这样(当然这是一个玩具示例,我想掌握这个概念):

father_name   child_name
Robert Julian
Robert Emily
Robert Dan
Carl Jack
Carl Rose
John Lucy
Paul Christopher
Paul Thomas

现在,我定义一个聚合字典并在数据帧d上使用它:

import pandas as pd
aggregation = {
'child_name': {
'n_children': 'count'
}
}
d.groupby('father_name').agg(aggregation)

我得到这个输出:

            child_name
n_children
father_name
Carl 2
John 1
Paul 2
Robert 3

现在我想:

  • 根据 child 的数量对父亲进行排序(按降序排列)
  • 仅显示有 2 个或更多 child 的父亲

我怎样才能做到这一点?也许还有一种更快的方法来做到这一点,但我也想学习这种方法。提前致谢!

最佳答案

你可以让

df_count = df.groupby('father_name').count()
df_count[df_count.child_name > 1].sort_values(by='child_name', ascending=False)

输出:

             child_name
father_name
Robert 3
Carl 2
Paul 2

如果您想更多地使用agg,则可能类似于以下内容(其中在使用重命名时抛出FutureWarning dicts 已弃用):

df.groupby('father_name').agg({'child_name': {'n_children': lambda x: len(x) if len(x) > 1 else None}}).dropna()

然后对结果进行排序。

关于python - 聚合后排序和选择(Pandas),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53802382/

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