首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同一组中观测值的“'Fill”虚拟变量(Python)

同一组中观测值的“'Fill”虚拟变量(Python)
EN

Stack Overflow用户
提问于 2020-12-06 15:17:09
回答 1查看 44关注 0票数 0

我已经创建了一个伪变量(在Python语言中) seo,如果另一列的值大于0,则该变量的值为1,如以下代码所示。

代码语言:javascript
复制
df['seo'] = (df['amount'] > 0).astype(int)

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

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

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

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

代码语言:javascript
复制
{'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}}

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-06 16:01:01

我认为这应该行得通:

代码语言:javascript
复制
df["past_seo"] = df.groupby("6_cusip").seo.cumsum().gt(0).astype(int)

基本上,累加每个组的seo,如果它大于1,则标记为true,并转换为整数。

输出:

代码语言:javascript
复制
       date 6_cusip  seo  past_seo
0   1994-05  00077R    0         0
1   1994-06  00077R    0         0
2   1994-07  00077R    0         0
3   1994-08  00077R    0         0
4   1994-09  00077R    0         0
5   1994-10  00077R    0         0
6   1994-11  00077R    0         0
7   1994-12  00077R    0         0
8   1995-01  00077R    0         0
9   1995-02  00077R    0         0
10  1995-03  00077R    0         0
11  1995-04  00077R    0         0
12  1995-05  00077R    0         0
13  1995-06  00077R    0         0
14  1995-07  00077R    0         0
15  1995-08  00077R    1         1
16  1995-09  00077R    0         1
17  1995-10  00077R    0         1
18  1995-11  00077R    0         1
19  1995-12  00077R    0         1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65165637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档