【问题标题】:'Fill forward' dummy variable for observations in same group (Python)同一组中观察的“向前填充”虚拟变量(Python)
【发布时间】:2023-04-04 07:23:01
【问题描述】:

我创建了一个虚拟变量(在 Python 中)seo,如果另一列的值大于 0,则它取值 1,如下面的代码所示。

df['seo'] = (df['amount'] > 0).astype(int)

我想做的是创建第二个虚拟变量past_seo,如果某个特定公司的seo 虚拟变量在任何历史时间都是1,则它取值1。

作为参考,我的数据集包含每月公司数据并包含公司标识符变量 (6_cusip)。

我尝试按6_cusipdate 对数据集进行分组,然后“向前填充”seo 虚拟变量。但是,我无法让它工作。

下面的代码显示了我的数据集中前 20 个观察值的示例。如图所示,观察结果均来自同一家公司。我想要做的是创建一个新列,将seo 列中的“1”填充到属于同一公司的所有后续观察。

{'date': {0: '1994-05',
  1: '1994-06',
  2: '1994-07',
  3: '1994-08',
  4: '1994-09',
  5: '1994-10',
  6: '1994-11',
  7: '1994-12',
  8: '1995-01',
  9: '1995-02',
  10: '1995-03',
  11: '1995-04',
  12: '1995-05',
  13: '1995-06',
  14: '1995-07',
  15: '1995-08',
  16: '1995-09',
  17: '1995-10',
  18: '1995-11',
  19: '1995-12'},
 '6_cusip': {0: '00077R',
  1: '00077R',
  2: '00077R',
  3: '00077R',
  4: '00077R',
  5: '00077R',
  6: '00077R',
  7: '00077R',
  8: '00077R',
  9: '00077R',
  10: '00077R',
  11: '00077R',
  12: '00077R',
  13: '00077R',
  14: '00077R',
  15: '00077R',
  16: '00077R',
  17: '00077R',
  18: '00077R',
  19: '00077R'},
 'seo': {0: 0,
  1: 0,
  2: 0,
  3: 0,
  4: 0,
  5: 0,
  6: 0,
  7: 0,
  8: 0,
  9: 0,
  10: 0,
  11: 0,
  12: 0,
  13: 0,
  14: 0,
  15: 1,
  16: 0,
  17: 0,
  18: 0,
  19: 0}}

如果您有任何建议,请告诉我,谢谢!

【问题讨论】:

  • 请提供您的数据样本,可能在您的问题中df.head(20).to_dict()
  • 谢谢你的帮助,我刚刚添加了。

标签:
python
pandas
dataframe
data-science
dummy-variable