当前位置: 首页 > 知识库问答 >
问题:

熊猫是否可以执行包含两列的聚合操作?

钮巴英
2023-03-14

给定以下数据帧,
是否可以在单个聚合函数中计算col2col2+col3的和,

import pandas as pd
df = pd.DataFrame({'col1': ['a', 'a', 'b', 'b'], 'col2': [1, 2, 3, 4], 'col3': [10, 20, 30, 40]})

在R的dplyr中,我会用单行的summary来完成,
我想知道在Pandas中有什么等价的:

df %>% group_by(col1) %>% summarize(col2_sum = sum(col2), col23_sum = sum(col2 + col3))

预期结果:

共有1个答案

益英逸
2023-03-14

让我们先尝试assign新列

out = df.assign(col23 = df.col2+df.col3).groupby('col1',as_index=False).sum()

出[81]:

  col1  col2  col3  col23
0    a     3    30     33
1    b     7    70     77

根据我的理解,apply更像R中的summary

out = df.groupby('col1').\
           apply(lambda x : pd.Series({'col2_sum':x['col2'].sum(),
                                       'col23_sum':(x['col2'] + x['col3']).sum()})).\
               reset_index()
Out[83]: 
  col1  col2_sum  col23_sum
0    a         3         33
1    b         7         77
 类似资料:
  • 我试图开发以下过滤器与熊猫数据帧: 我有四列,,,和 如何将其作为聚合函数编写? 下面是一个编写效率低下的工作示例: 输出:

  • 问题内容: 之前已经讨论过这个问题,但是没有一个答案可以解决我的特定问题,因为我正在处理内部和外部selects中的不同where子句。该查询在Sybase下执行得很好,但是在SQL Server下执行时,此标题中出现错误。该查询很复杂,但是查询的总体轮廓为: 下面介绍了我要解决的情况: 除“总数”和“其他”外,所有组码均代表种族 组代码“总计”代表所有种族的毕业生总数 但是,缺少多种族,因此种族

  • 问题内容: 如果要创建一个包含几列的新DataFrame,可以一次添加所有列-例如,如下所示: 但是现在假设走得更远,我想向此DataFrame添加一组其他列。有没有一种方法可以同时添加它们,如 我知道我可以这样做: 或这个: 我只是希望有一些清洁的东西。如果我坚持使用这两个选项,哪个是首选? 问题答案: 熊猫从那以后就有方法了。您可以在像这样的数据帧上使用它 或者,您可以直接使用字典,例如

  • 我有两排像这样的, 我希望将它们合并为一个单独的: 不知道如何在熊猫身上做到这一点。任何提示都将受到高度赞赏!提前谢谢

  • 问题内容: 我正在尝试确定一个程序/软件,该程序/软件将使我能够有效地提取大量大型CSV文件(总计40+ GB),并输出具有导入到Elasticsearch(ES)所需的特定格式的JSON文件。 jq可以有效地获取如下数据: 按ID进行汇总(这样,多个文件中CSV行中的所有JSON文档都属于一个id条目),输出如下所示: 我用Matlab编写了一个脚本,但由于担心它的执行速度慢得多。我可能需要花费

  • 如何与熊猫进行聚合 聚合后没有数据帧!发生了什么事 如何聚合字符串列(到s、s、) 我如何计算总计数 如何创建由聚合值填充的新列 我看到了这些反复出现的问题,它们询问了功能的各个方面。如今,关于聚合及其各种用例的大部分信息都分散在几十篇措辞糟糕、无法检索的文章中。这里的目的是为后代整理一些更重要的观点。 这个Q 如何透视数据帧, 熊猫壳 如何对每列都有一个序列的数据帧进行操作 熊猫合并101 请注