对多级组的组内观察计数/分配组顺序?

Posted

技术标签:

【中文标题】对多级组的组内观察计数/分配组顺序?【英文标题】:Counting/assigning group order to observations within groups for multilevel groups? 【发布时间】:2016-11-08 00:08:02 【问题描述】:

我正在进行时间序列分析我有一个数据集,其中至少包含两个索引变量(在本例中为 ID 和年份)。按 ID 和年份排序后:

ID  Year Grade 
1   1990  89
1   1991  76
1   1991  29
2   2001  99
2   2001  46
2   2001  69
2   2003  95

我想按这些变量进行分组,并将第一组中第二级组的出现顺序分配给每个观察值。换句话说,我想在下面生成“周期”变量:

ID  Year Grade period 
1   1990 89     1 
1   1991 76     2
1   1991 29     2
2   2001 99     1
2   2001 46     1
2   2001 69     1
2   2003 95     2

【问题讨论】:

您应该在问题中添加您的答案。 【参考方案1】:

我找到了解决此问题的方法。首先对您的级别变量进行排序

full_data = full_data.sort_values(by=['ID','Year'],ascending = [True, True])

创建一个二元变量,指示每个 2 级组中的第一个观察值

full_data['temp'] = (full_data.groupby(['ID','Year']).cumcount() == 0).astype(int)

然后计算每个第一级组内该变量的累积和。

full_data['period'] = full_data.groupby(['ID']).cumsum()['temp']

如果您不先排序,则此答案无效。由于对 Pandas 相当缺乏经验,我花了一段时间才弄清楚这一点。它有效,但我很好奇是否有人有更简单的解决方案。

【讨论】:

以上是关于对多级组的组内观察计数/分配组顺序?的主要内容,如果未能解决你的问题,请参考以下文章

JMeter 一个线程组的多个请求,怎么设置指定

SQL 按顺序分组和组的顺序 ID

jmeter如何并行执行多个线程组

Android - 在 ExpandableListView 中查看每个组的特定子项

如何分组并保留已排序文件上的组顺序

从熊猫数据框中的组内选择特定行