当前位置: 首页 > 面试题库 >

熊猫Groupby和总和只有一栏

谯志诚
2023-03-14
问题内容

所以我有一个数据框df1,看起来像下面的样子:

       A      B      C
1     foo    12    California
2     foo    22    California
3     bar    8     Rhode Island
4     bar    32    Rhode Island
5     baz    15    Ohio
6     baz    26    Ohio

我想按A列分组,然后对B列求和,同时将值保留在C列中。

      A       B      C
1    foo     34    California
2    bar     40    Rhode Island
3    baz     41    Ohio

问题是,当我说df.groupby(’A’)。sum()列C被删除时,返回

      B
A
bar  40
baz  41
foo  34

当我进行分组和求和时,如何解决这个问题并保留C列?


问题答案:

唯一的方法是将C包含在groupby中(groupby函数可以接受列表)。

试试看:

df.groupby(['A','C'])['B'].sum()

需要注意的另一件事是,如果需要在聚合后使用df,则还可以使用as_index =
False选项返回数据框对象。当我第一次与熊猫一起工作时,这给我带来了麻烦。例:

df.groupby(['A','C'], as_index=False)['B'].sum()


 类似资料:
  • 我必须根据以下col1、col2和loc的数据进行分组,并计算col3中的项数。此外,还应考虑开始和结束日期,即日期应在2021 1月1日至2021 1月31日之间。最终结果应显示在col4中。 数据 预期输出

  • 问题内容: 我有一个数据框df,有两列,我想按一列分组并加入属于同一组的列表,例如: 处理后: 我想保留所有重复项。我有以下问题: 数据框的dtype是对象。convert_objects()不会自动将column_b转换为列表。我怎样才能做到这一点? df.groupby(…)。apply(lambda x:…)中的函数适用于什么?x的形式是什么?清单? 我主要问题的解决方案? 提前致谢。 问题

  • 我正在使用此数据框: 我想通过名称和水果将其聚合,得到每个名称的水果总数。 我试着按名字和水果分组,但如何得到水果的总数呢。

  • 当我分组和求和时,我怎样才能绕过这个并保留C栏呢?

  • 这显然很简单,但作为一个新手,我被卡住了。 我有一个CSV文件,其中包含3列:州、办公室ID和该办公室的销售额。 我想计算给定州每个办公室的销售额百分比(每个州所有百分比的总和为100%)。 这返回: 我似乎不知道如何“达到”级别,以总计整个的来计算分数。

  • 问题内容: 我有一个数据框,看起来像: 我希望按年份分组,然后总结sum_col。此外,我需要查找一周的最早日期和最新日期。第一部分很简单: 我试图用这个来找到最小/最大日期,但是没有成功: 如何找到最早/最新出现的日期? 问题答案: 您需要组合适用于同一列的函数,如下所示: