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

对pandas数据帧中的某些行组求和

乐正浩言
2023-03-14

我有一个pandas dataframe,我想在其中求和某些不规则间隔的日期之间的值。举个例子,我有这样的东西:

并且我知道这些总和的截止日期是2021-03-01、2021-03-04、2021-03-05,所以我想要截止日期和直到(但不包括)下一个截止日期产生的所有小部件的总和。所有不是截止日期的日期的值都为0。

这将产生如下所示的新列。

我怎么能在熊猫内部做到这一点呢?

共有1个答案

逄俊贤
2023-03-14

您可以尝试使用:

df['date'] = pd.to_datetime(df['date']) #convert to datetime

然后检查是否出现截止值和累积值,并将其用作石斑鱼柱:

cutoffs= ['2021-03-01', '2021-03-04', '2021-03-05']
cond = df['date'].isin(pd.to_datetime(cutoffs))
df['sums'] = df.groupby(cond.cumsum())['widgets'].transform('sum').where(cond,0)

print(df)

        date  widgets    sums
0 2021-03-01        1       2
1 2021-03-02        0       0
2 2021-03-03        1       0
3 2021-03-04        3       3
4 2021-03-05        1       3
5 2021-03-06        2       0
 类似资料:
  • 如何删除所有“假”值并保留“真”值?

  • 问题内容: 我有一个像下面这样的熊猫数据框。 我根据基于UsrId的数据框进行分组。分组的数据框在概念上将如下所示。 现在,我正在寻找一个内置API,该API将为我提供具有最大作业数的UsrId。对于上面的示例,UsrId-2具有最大计数。 更新: 我想要最大作业数的’n’UserIds,而不是最大作业数的UsrID。对于上面的示例,如果n = 2,则输出为[2,1]。能做到吗? 问题答案: 喜欢

  • 我有一个pandas数据帧像: 我想按第一列进行分组,并将第二列作为行中的列表:

  • 我有一个熊猫,如下所示: 我想按进行分组并获取每个组的第一行: 预期成果: 我尝试了下面的方法,它只给出了< code>DataFrame的第一行。任何关于这方面的帮助都将不胜感激。

  • 有没有一种方法可以将下面的两个数据流连接起来,这样: 我将有一个带有标题的新数据帧: 时间戳调整的关闭reportedEPS estimatedEPS 并且reportedEPS和estimatedEPS将根据以下值保持不变: 时间戳:1月1日至3月31日,4月1日至6月30日,7月1日至9月30日,10月1日至12月31日? 2个数据流: https://gyazo.com/38B50A3D7E

  • 我有一个数据帧,我想按两个参数分组(1)相同的第一列中的连续编号和(2)第二列中的匹配值 数据帧: 组1包括前2行,因为30和31是连续的,第二列匹配。创建组2是因为Col1中的31和35不是连续的。创建组3是因为H和E不匹配。 在pandas groupby中对列表中的行进行分组 我很感谢你给我的建议