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

按ID和日期聚合panda数据帧

邵凯定
2023-03-14

我正在尝试通过ID和日期聚合数据帧。假设我有一个DataFrame:

  Publish date  ID  Price
0   2000-01-02   0     10
1   2000-01-03   0     20
2   2000-02-17   0     30
3   2000-01-04   1     40

我想通过ID和日期(频率=1W)聚合该值,并得到一个dataframe如下所示:

  Publish date  ID  Price
0   2000-01-02   0     30
1   2000-02-17   0     30
2   2000-01-04   1     40

我理解它可以通过迭代ID并使用grouper聚合价格来实现。有没有更有效的方法不迭代IDS?多谢。

共有1个答案

夏景胜
2023-03-14

grouper与聚合sum一起使用,但不确定grouper的频率(因为与所讨论的内容类似,所有内容看起来都不同):

df['Publish date'] = pd.to_datetime(df['Publish date'])

df = (df.groupby([pd.Grouper(freq='W', key='Publish date'),'ID'], sort=False)['Price']
        .sum()
        .reset_index())
print (df)
  Publish date  ID  Price
0   2000-01-02   0     10
1   2000-01-09   0     20
2   2000-02-20   0     30
3   2000-01-09   1     40
df['Publish date'] = pd.to_datetime(df['Publish date'])

df = (df.groupby([pd.Grouper(freq='W-Mon', key='Publish date'),'ID'], sort=False)['Price']
        .sum()
        .reset_index())
print (df)
  Publish date  ID  Price
0   2000-01-03   0     30
1   2000-02-21   0     30
2   2000-01-10   1     40

或:

df['Publish date'] = pd.to_datetime(df['Publish date'])

df = (df.groupby([pd.Grouper(freq='7D', key='Publish date'),'ID'], sort=False)['Price']
        .sum()
        .reset_index())
print (df)
  Publish date  ID  Price
0   2000-01-02   0     30
1   2000-02-13   0     30
2   2000-01-02   1     40
 类似资料:
  • 问题内容: 我有一个包含时间戳名为RDD 时间 长整型: 我正在尝试按值1,值2和时间分组为YYYY-MM-DD。我尝试按演员分组(时间为日期),但随后出现以下错误: 这是否意味着无法按日期分组?我什至尝试添加另一级别的强制转换以将其作为字符串: 哪个返回相同的错误。 我已经读到我可以在RDD上使用gregationByKey,但我不明白如何在几列中使用它并将其转换为YYYY-MM-DD字符串。我

  • 我目前有以下数据帧; 我要做的是创建一个如下所示的dataframe; 其中,每当“感情”列中的值为“正”时,就会添加1,每当它为负时,就会从新创建的sentiment_score列中扣除1。最后,数据帧将被聚合成每个日期的股票及其相应的情绪得分。 然而,我的问题是我知道如何在Excel中这样做,但我刚刚开始使用Python,因此对如何在Excel中这样做几乎一无所知。 任何帮助都将非常感谢!

  • 问题内容: 我有以下类型的文件: 我想按星期几计算文件数。例如,x消息在星期一发送,y消息在星期二发送,依此类推。 我已经使用date_histogram进行汇总,但是它会按日向我返回文档。它确实返回了当天,但是说“ 22周三”和“ 29周三”作为单独的汇总文档返回。 这在某种程度上与Elasticsearch有关-按星期和小时的天分组,但是该问题没有答案,因此我将其重新发布。根据那里的建议,它要

  • 我在使用聚合框架从MongoDB读取文档时遇到了问题:我的结果中总是得到空ID。这只发生在具有复合ID的文档中。我尝试了各种版本的spring-data-mongob(1.10.12, 2.0.7),结果相同。 实体定义类 测试代码 输出 调试到以下方法MappingMongoConverter。read(final mongopersistenentity entity、final Docume

  • 我有一个窗口化的每小时聚合的数据流。 Datastreamds=.....

  • 我们计划将Apache Flink与一个巨大的IOT设置一起使用。客户将向我们发送某种结构化的传感器数据(如sensor_id、sensor_type、sensor_value、timestamp)。我们没有控制每个客户何时发送这些数据,最有可能是实时的,但我们没有保证。我们将所有事件存储在RabbitMQ/Kafka中。更新:我们可以假设每个传感器的事件是按顺序来的。 在开始实施可能的流式管道之