楼主: lihao_
4204 4

[统计软件] 关于数据整理,前十大事务所审计 [推广有奖]

  • 2关注
  • 0粉丝

已卖:1份资源

大专生

36%

还不是VIP/贵宾

-

威望
0
论坛币
30 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
237 点
帖子
26
精华
0
在线时间
60 小时
注册时间
2017-12-2
最后登录
2020-12-20

楼主
lihao_ 学生认证  发表于 2018-1-19 16:16:44 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
想请教大家一个问题,我有两份数据,一份是历年十大会计师事务所名单,另一份是上市公司的审计事务所名单。然后我现在是想设置big10的虚拟变量,即十大审计取1,否则取0。但是我怎么把这两份数据进行匹配呢?
我试了vlookup(在excel里做),但是问题是,事务所名称不完全相同,比如“安永华明会计师事务所”和“安永华明会计师事务所(特殊普通合伙人)”。如果用精确匹配的话就匹配不上,用近似匹配的话常常会出现错误。
其他笨办法,比如一个一个的筛选我也想过,但是感觉工作量太大,因为有10000+的样本。不知道哪位同学有好的方法?谢谢啦!
big10名单

上市公司的审计事务所



二维码

扫码加我 拉你入群

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

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

关键词:数据整理 事务所 请教大家一个问题 vlookup 会计师事务所

沙发
沉睡的喵喵喵222 发表于 2018-1-22 22:11:59
我最近刚好也遇到了这个问题,想问问你最终解决了吗?还是说直接初略的固定出一组前十大会计师事务所来进行分析?

藤椅
lihao_ 学生认证  发表于 2018-1-28 14:36:52
沉睡的喵喵喵222 发表于 2018-1-22 22:11
我最近刚好也遇到了这个问题,想问问你最终解决了吗?还是说直接初略的固定出一组前十大会计师事务所来进行 ...
手动筛选的

板凳
assmerada 发表于 2020-8-13 09:58:12
gen Big10=1 if strmatch(auditor,"*安永华明*")

报纸
赵安豆 发表于 2024-10-7 15:20:44
面对这个问题,我们可以使用更智能的数据处理方式来匹配这两份数据集。以下是一种可能的方法:

### 使用Python进行文本匹配和数据整理

#### 步骤1:导入必要的库

```python
import pandas as pd
from fuzzywuzzy import fuzz, process
```

确保你安装了`fuzzywuzzy`库,它可以帮助我们处理不完全匹配的字符串。

#### 步骤2:加载你的数据

假设你的两份数据分别在两个CSV文件中:

```python
df_top10 = pd.read_csv('top_10_accounting_firms.csv')
df_audits = pd.read_csv('audit_firms_for_listed_companies.csv')
```

#### 步骤3:创建匹配函数

使用`fuzzywuzzy`的`process.extractOne`方法来找出最接近的匹配项。

```python
def match_firm(name, choices):
    return process.extractOne(name, choices)[0]

# 将df_top10中的公司名称保存为一个列表,用于后续的字符串匹配
top_10_names = df_top10['firm_name'].tolist()
```

#### 步骤4:应用函数到审计事务所数据

```python
df_audits['big10'] = df_audits['auditor'].apply(lambda x: match_firm(x, top_10_names) if fuzz.token_set_ratio(x, match_firm(x, top_10_names)) > 85 else '')
```

这里我们使用了`fuzz.token_set_ratio`来确定匹配度是否足够高。如果低于指定的阈值(例如,85),则认为没有匹配。

#### 步骤5:设置虚拟变量

```python
df_audits['is_big10'] = df_audits['big10'].apply(lambda x: 1 if x else 0)
```

这样你就可以得到一个“Big10”审计的二进制指示列。

这个方法使用了模糊匹配,可以处理名称中的小差异。当然,阈值可能需要根据实际情况调整以获得最佳效果。此外,由于`fuzzywuzzy`在大数据集上可能会较慢,如果数据量特别大,考虑使用更高效的算法或并行处理技术。

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



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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-1 12:09