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

Pandas-将列名添加到groupby的结果中[重复]

寿翰飞
2023-03-14

我想在Python 3.6中的DataFrame中将列名添加到Groupby的结果中。

我尝试了以下代码:

import pandas as pd
d = {'timeIndex': [1, 1, 1, 1, 2, 2, 2], 'isZero': [0,0,0,1,0,0,0]}
df = pd.DataFrame(data=d)
df2 = df.groupby(['timeIndex'])['isZero'].sum()
print(df2)

结果

timeIndex
1    1
2    0
Name: isZero, dtype: int64

它看起来像timeIndex是一个列标题,但是尝试按名称对列进行寻址会产生异常。

df2['timeIndex']
# KeyError: 'timeIndex'

df2['isZero']
# KeyError: 'isZero'

我在寻找这个结果。

df2 

     timeIndex    isZero
0    1    1
1    2    0

df2['isZero']

0    1
1    0

共有1个答案

邹修真
2023-03-14

方法一:

将参数用作groupby中的\u index=False

df2 = df.groupby(['timeIndex'], as_index=False)['isZero'].sum()

>>> df2
   timeIndex  isZero
0          1       1
1          2       0

>>> df2['isZero']
0    1
1    0
Name: isZero, dtype: int64

方法二:

您可以将to_frame与所需的列名一起使用,然后使用reset_index

df2 = df.groupby(['timeIndex'])['isZero'].sum().to_frame('isZero').reset_index()

>>> df2
   timeIndex  isZero
0          1       1
1          2       0

>>> df2['isZero']
0    1
1    0
Name: isZero, dtype: int64
 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 使用pandas GroupBy.agg()对同一列进行多次聚合 (3个答案) 去年关闭。 示例数据集: 我想通过和对这个数据集的观察进行分组,并对每个组求和。所以我用了这样的东西… 在使用时,我能够获得“ SQL-like”输出。我的问题是我无法在此处 重命名聚合变量。因此,在SQL中,如果想做上述事情,我会做这样的事情: 正如我们看到的,它很容易让我

  • 问题内容: 我正在尝试将pandas Dataframe(orders_df)中的两个现有列相乘- 价格(股票收盘价)和Amount(股票数量),并将计算结果添加到名为“值”的新列中。由于某些原因,当我运行此代码时,“值”列下的所有行均为正数,而某些行应为负数。在DataFrame的“操作”列下,有七行带有“出售”字符串,七行带有“购买”字符串。 请让我知道我在做什么错! 问题答案: 如果我们愿意

  • 我在做一件简单的事情,想不出该怎么做。我有一个使用方法的ArrayList,我想立即将结果添加到一个新的ArrayList中。 所以我想做类似的操作,但这不是正确的方法。 对我的代码的任何其他部分的PS建议也会很感激。谢谢!

  • 问题内容: 我认为这是一个非常基本的问题,但我似乎找不到解决方案。 我有一个类似于以下内容的熊猫数据框: 它创建一个像这样的表: 我正在尝试创建一个表,该表表示该数据帧中不同值的数量。所以我的目标是这样的: 但是,我找不到正确的功能来实现这一目标。我试过了: 这将产生一个具有3行(按预期)但没有“ count”列的表。我不知道如何在该计数栏中添加。有人可以指出我正确的方向吗? 问题答案: 您可以使

  • 问题内容: 我正在用SSRS编写一份报告。该数据集填充有MS SQL Server的SQL查询。它使用Union All查询几个相似的表。问题是有一些信息丢失。不同的表适用于不同的工作站点,但是这些表中的任何列都没有站点名称。标识站点的唯一方法是通过表名。在“全部合并”的结果的合并列中,无法分辨出哪些行来自哪个站点。 有没有一种方法可以更改我的查询以在结果中添加一列,该列将具有与每一行相关联的工作

  • 我有一个excel工作表,看起来像这样: 我希望提取这些数据,按列1分组,然后将其添加到字典中,使其如下所示: 到目前为止这是我的代码 但是,我的输出如下所示: 谢啦!