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

如何在熊猫中添加“群内订单”一栏?

华峰
2023-03-14

采用以下数据帧:

import pandas as pd
df = pd.DataFrame({'group_name': ['A','A','A','B','B','B'],
                   'timestamp': [4,6,1000,5,8,100],
                   'condition': [True,True,False,True,False,True]})

我想增加两列:

  1. 行在其组中的顺序

我知道我可以用自定义应用程序来实现,但我想知道是否有人有什么有趣的想法?(当有许多组时,这也很慢。)这里有一个解决方案

def range_within_group(input_df):
    df_to_return = input_df.copy()
    df_to_return = df_to_return.sort('timestamp')
    df_to_return['order_within_group'] = range(len(df_to_return))
    df_to_return['rolling_sum_of_condition'] = df_to_return.condition.cumsum()
    return df_to_return

df.groupby('group_name').apply(range_within_group).reset_index(drop=True)

共有1个答案

云丰
2023-03-14

GroupBy.cumcount

将每组中的每个项目从0编号到该组的长度-1。

简单地说:

>>> gr = df.sort('timestamp').groupby('group_name')
>>> df['order_within_group'] = gr.cumcount()
>>> df['rolling_sum_of_condition'] = gr['condition'].cumsum()
 类似资料:
  • 如何将单个项目添加到序列化的panda系列中。我知道这不是记忆方面最有效的方法,但我仍然需要这样做。 一些事情: 另外,我怎么能添加一个单一的行到熊猫DataFrame?

  • 我在一个大学的项目上苦苦挣扎了几天,一周后我必须交上来。我正在使用一个数据集(主要使用熊猫),我必须分析有关登山探险的信息。我的条形图工作得很好,但每次我都会遇到同样的问题:我的x轴没有按顺序增长,这不是最重要的,但它仍然困扰着我。我一直在网上到处寻找,但我找不到任何东西来解决我的问题。以下是我的代码行: 如何按成长顺序排列x轴?我知道这一定很简单,但我就是不知道怎么做;我对所有其他图表都有同样的

  • 我对熊猫很陌生,我想知道如何同时给熊猫添加多个列。感谢您的帮助。理想情况下,我想一步到位,而不是多步重复。。。

  • 如何向Pandas 实例添加单个项目? 我正在寻找以下代码: 同样,我如何向Pandas 添加一行呢?

  • 问题内容: 我试图弄清楚如何在Pandas数据框中的日期中添加3个月,同时将其保持为日期格式,因此可以使用它来查找范围。 这是我尝试过的: 但是,出现以下错误: 问题答案: 你可以用 另一种使用方式 细节

  • 问题内容: 我有一个包含以下信息的数据框: 我想根据索引插入数据帧中的值, 但仅在每个文件组中 。 插值,我通常会做 和我一起做 我希望插入的数据帧看起来像这样: NaN仍然存在于t = 6的位置,因为它们是file2组中的第一项。 我怀疑我需要使用“应用”,但是还无法确切地知道如何… 任何帮助,将不胜感激。 问题答案: