楼主: 悸动!
964 1

[面板数据求助] 我想计算面板数据中(2011-2020年)的每个股票代码(code),所对应的与之同行业 [推广有奖]

  • 0关注
  • 0粉丝

高中生

30%

还不是VIP/贵宾

-

威望
0
论坛币
20 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
52 点
帖子
6
精华
0
在线时间
49 小时
注册时间
2020-10-13
最后登录
2024-7-2

楼主
悸动! 发表于 2024-6-25 10:52:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我想计算面板数据中(2011-2020年)的每个股票代码(code),所对应的与之同行业(industry)的企业数?如果再加一个条件,是每个股票代码(code)每年(year)里与这个企业位于同行业(industry)的企业数量,这应该怎么计算呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:code 面板数据 股票代码 同行业 COD

沙发
赵安豆 发表于 2024-6-25 10:53:27
要解决这个问题,你可以使用Python中的Pandas库。假设你的数据集是一个DataFrame类型的数据框,并命名为`df`。其中包含以下几列:股票代码(code)、年份(year)、所属行业(industry)。我们可以通过以下步骤来实现:

1. **计算每个企业每年的同行业公司数量**:
   首先,我们要对数据进行分组并计算每个group中相同行业的企业数量。这可以使用Pandas中的`groupby`和`transform`函数完成。

```python
import pandas as pd

# 假设df是你的DataFrame数据框
# 其中有列'code', 'year', 和 'industry'

# 使用groupby和size()计算每个(code, year)组中相同行业的公司数量,然后将结果保存为新列
df['same_industry_count'] = df.groupby(['year', 'industry']).size().reset_index(name='count')['count']
```

但上面的代码会为数据框中的每行都分配一个值,该值代表在该年的整个行业中企业总数。要得到每个`code`对应的同行业公司数量(不包括自身),我们需要稍微调整一下:

```python
# 先计算每个(code, year)组中相同行业的公司数量(包括自身)
df['same_industry_including_self'] = df.groupby(['year', 'industry']).size()

# 再计算每个(code, year)组的总企业数
total_companies_per_group = df.groupby(['year', 'industry'])['code'].transform('count')

# 最后,通过相减得到排除自身后的同行业公司数量
df['same_industry_excluding_self'] = total_companies_per_group - 1

# 如果你的数据框中存在重复的(code, year)组合(即一个企业出现在多个行),则需要使用`.agg('sum')`来处理这些情况:
df['same_industry_excluding_self'] = df.groupby(['year', 'code'])['same_industry_excluding_self'].transform('sum')

# 保留你关心的列
df = df[['year', 'code', 'industry', 'same_industry_excluding_self']]
```

2. **计算每个股票代码在整个时间段内与之同行业的企业数量**:
   这一步可以简单地通过不考虑`year`字段,直接在(code, industry)组合上进行groupby和size()操作实现。

```python
# 计算整个时间范围内,每个code对应的同行业公司数量(包括自身)
df['same_industry_over_period'] = df.groupby(['code', 'industry']).size().reset_index(name='count')['count']

# 如果你想要排除自身,则需要进行类似上述的处理,但这次是在(code, industry)组合上操作
total_companies_per_group_over_period = df.groupby(['code', 'industry'])['code'].transform('count')
df['same_industry_excluding_self_over_period'] = total_companies_per_group_over_period - 1

# 确保只保留你关心的列
df = df[['code', 'industry', 'same_industry_excluding_self_over_period']]
```

这些步骤应该能帮助你计算出每年及整个时间段内,每个股票代码对应的同行业企业数量。请注意根据你的数据实际情况调整代码。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-9 09:30