相关推文

从3571w条专利数据集「匹配」上市公司的专利信息

推荐 | 如何处理远超电脑内存的csv文件



3571万专利申请全量数据(1985.01 ~ 2022.5)数据,解压后整个文件夹大概 20 G。


为了方便各位下载,对数据进行了压缩,压缩后整个文件夹体积大概20G 。gz可以用常见的解压软件解压,如 bandizip、winrar。


一、数据介绍

1.1 数据集概况

- 数据集名称:省份版知识产权局专利
- 时间跨度:1985.1-2022.5,专利申请总量3571万
- 数据来源:『国家知识产权局』
- 数据整理: 『公众号:大邓和他的Python』

1. 付费数据集,100元;加微信 372335839, 备注「姓名-学校-专业」。

2. 数据是虚拟产品,一经售出,不再退还!

3. 大家时间其实都很宝贵,请仔细阅读推文内容, 确认无误再加微信详谈购买事宜 


1.2 分省统计

| 省份(区域)       |  专利数  |
| :---------------| :------ |
| 广东省           | 5728705 |
| 江苏省           | 4879171 |
| 浙江省           | 3706820 |
| 山东省           | 2064446 |
| 北京市           | 2069913 |
| 四川省           | 1159551 |
| 天津市           | 712932  |
| 上海市           | 1548278 |
| 贵州省           | 265512  |
| 陕西省           | 655837  |
| 吉林省           | 232264  |
| 辽宁省           | 637853  |
| 湖北省           | 966384  |
| 山西省           | 233418  |
| 宁夏回族自治区    | 66919   |
| 西藏自治区        | 9911    |
| 广西壮族自治区    | 377658  |
| 江西省           | 519584  |
| 湖南省           | 743828  |
| 黑龙江省         | 357881  |
| 海南省           | 59202   |
| 福建省           | 1046473 |
| 安徽省           | 1342364 |
| 河北省           | 645420  |
| 重庆市           | 592382  |
| 内蒙古自治区      | 133277  |
| 云南省           | 252407  |
| 甘肃省           | 164274  |
| 新疆维吾尔自治区   | 124734  |
| 河南省           | 966477  |
| 青海省           | 34127   |
| 台湾省           | 401555  |
| 香港特别行政区    | 61636   |
| 澳门特别行政区    | 2010    |
| 其他国家         | 2948557 |

1.3 字段

 -  专利公开号
 -  专利名称
 -  专利类型
 -  专利摘要
 -  申请人(自然人、法人;可以是多个主题并列,用;间隔申请人主体)
 -  专利申请号
 -  申请日
 -  申请公布日
 -  授权公布号
 -  授权公布日
 -  申请地址
 -  主权项
 -  发明人
 -  分类号
 -  主分类号
 -  代理机构
 -  分案原申请号
 -  优先权
 -  国际申请
 -  国际公布
 -  代理人
 -  省份或国家代码
 -  法律状态
 -  专利领域
 -  专利学科
 -  多次公布



二、实验代码

2.1 读取数据

数据集中的个别csv文件较大,例如 广东省.csv.gz体积2.47 G , 解压得到的 广东省.csv 10G。 建议直接读取 .csv.gz,这样会节省内存消耗。需要注意每次分析时不要开其他软件,如Word/PPT/Excel/WPS。

import pandas as pd

df = pd.read_csv('河北省.csv.gz', encoding='utf-8', compression='gzip', low_memory=False)
#df = pd.read_csv('河北省.csv', encoding='utf-8', low_memory=False)

df['申请日'] = pd.to_datetime(df['申请日'])
df.head()

Run


2.2 记录数

print('河北省: ', len(df))

Run

河北省: 645420

2. 3 覆盖日期

print(df['申请日'].min())
print(df['申请日'].max())

Run

1985-01-28 00:00:00
2022-05-24 00:00:00

2.4 字段

df.columns

Run

Index(['专利公开号', '专利名称', '专利类型', '专利摘要', 
'申请人', '专利申请号', '申请日', '申请公布日', 
'授权公布号', '授权公布日', '申请地址', '主权项', '发明人',
'分类号', '主分类号', '代理机构', '分案原申请号', '优先权', 
'国际申请', '国际公布', '代理人', '省份或国家代码',
'法律状态', '专利领域', '专利学科', '多次公布'],
dtype='object')


Run

实用新型 361832
发明公开 155084
外观设计 107905
发明授权 20599



三、查看字段详情

每个字段都含哪些信息

3.1 专利类型

df['专利类型'].unique()

Run

array(['外观设计', '实用新型', '发明公开', '发明授权'], dtype=object)
专利领域

3.2 发明人

发明人一般是自然人,但是极少数情况也可以是法人。发明人可以是多个自然人,一般以 ; 间隔

df['发明人']

Run

0                              温绍强
1                              谭红建
2                              梁京京
3                              谭达兴
4                         魏国兴; 陈定祥
                    ...           
5728700                        邓晓明
5728701                        杨峰铭
5728702    赵富荣; 彭新春; 秦何军; 黄领才; 陈立伟
5728703                   周燕莉; 卢建兰
5728704                        曾文华
Name: 发明人, Length: 5728705, dtype: object

#整个广东省,只有这几个专利是法人发明
df[df['发明人'].fillna('').str.contains('公司')][['专利名称', '发明人']]


3.3 申请人

注意,申请人可以是自然人、法人、多个(自然人、法人), 一般以 ; 间隔。我们先直接看 申请人

df['申请人']

Run

0                      温绍强
1          台山市国际交通器材配件有限公司
2            深圳市时代设计印务有限公司
3           东莞高端精密电子股份有限公司
4           东莞凤岗嘉安塑胶五金有限公司
                ...       
5728700     佛山肯富来安德里兹泵有限公司
5728701        东莞全方位傢俱有限公司
5728702        中航通飞研究院有限公司
5728703         南方医科大学南方医院
5728704    深圳市金键精密五金制品有限公司
Name: 申请人, Length: 5728705, dtype: object

df[df['申请人'].fillna('').str.contains(';')][['专利名称', '申请人']]


3.4 分类号

df['分类号']

Run

0                                                 08-06
1                                                 12-16
2                                              B65D6/14
3                                   H01R13/40;H01R13/02
4          B65C9/02;B65C9/40;B65C9/26;B07C5/34;B07C5/36
                               ...                     
5728700                                           15-02
5728701                                           06-03
5728702                                       B64C35/00
5728703                                       A61G7/053
5728704                               F16B5/00;F16B5/10
Name: 分类号, Length: 5728705, dtype: object

3.5 主分类号

df['主分类号']

Run

0              08-06
1              12-16
2           B65D6/14
3          H01R13/40
4           B65C9/02
             ...    
5728700        15-02
5728701        06-03
5728702    B64C35/00
5728703    A61G7/053
5728704     F16B5/00
Name: 主分类号, Length: 5728705, dtype: object

3.6 专利领域

df['专利领域']

Run

0                  工程科技Ⅰ辑
1                  工程科技Ⅱ辑
2                  工程科技Ⅱ辑
3                  工程科技Ⅱ辑
4                  工程科技Ⅱ辑
                ...      
5728700            工程科技Ⅱ辑
5728701            工程科技Ⅰ辑
5728702            工程科技Ⅱ辑
5728703    医药卫生科技; 工程科技Ⅱ辑
5728704            工程科技Ⅱ辑
Name: 专利领域, Length: 5728705, dtype: object

df['专利领域'].unique()

Run

array(['工程科技Ⅰ辑', '工程科技Ⅱ辑', '农业科技', '医药卫生科技', '医药卫生科技; 工程科技Ⅱ辑', '信息科技',
       '工程科技Ⅱ辑; 信息科技', '工程科技Ⅰ辑; 工程科技Ⅱ辑', '工程科技Ⅱ辑; 工程科技Ⅰ辑',
       '工程科技Ⅱ辑; 医药卫生科技', '基础科学', '社会科学Ⅱ辑', '基础科学; 信息科技', '信息科技; 工程科技Ⅰ辑',
       '工程科技Ⅰ辑; 信息科技', '基础科学; 工程科技Ⅰ辑', '工程科技Ⅰ辑; 农业科技', '工程科技Ⅰ辑; 医药卫生科技',
       '农业科技; 工程科技Ⅰ辑', '工程科技Ⅱ辑; 哲学与人文科学'], dtype=object)

3.7 专利学科

df['专利学科']

Run

0                                   轻工业手工业
1                                     汽车工业
2                                工业通用技术及设备
3                                     电力工业
4                                工业通用技术及设备
                        ...               
5728700                               机械工业
5728701                             轻工业手工业
5728702                          航空航天科学与工程
5728703    医药卫生方针政策与法律法规研究; 生物医学工程; 仪器仪表工业
5728704                               机械工业
Name: 专利学科, Length: 5728705, dtype: object

array(['轻工业手工业', '汽车工业', '工业通用技术及设备', '电力工业', '园艺', '机械工业',
       '医药卫生方针政策与法律法规研究; 中医学', '医药卫生方针政策与法律法规研究; 生物医学工程; 仪器仪表工业',
       '金属学及金属工艺', '电信技术', '外科学', '无线电电子学', '建筑科学与工程', '船舶工业', '材料科学',
       '仪器仪表工业', '动力工程', '生物医学工程', '一般服务业', '有机化工', '水产和渔业', '自动化技术',
       '有机化工; 无机化工', '武器工业与军事技术', '计算机硬件技术', '工业通用技术及设备; 电信技术',
       '环境科学与资源利用', '水利水电工程', '一般化学工业', '公路与水路运输', '有机化工; 无机化工; 矿业工程',
       '眼科与耳鼻咽喉科', '口腔科学', '园艺; 林业', '新能源', '无机化工', '无机化工; 有机化工',
       '临床医学; 生物医学工程', '有机化工; 无机化工; 工业通用技术及设备', '生物医学工程; 仪器仪表工业', '化学',
       '航空航天科学与工程', '畜牧与动物医学', '农业工程; 畜牧与动物医学', '临床医学', '轻工业手工业; 仪器仪表工业',
       '计算机软件及计算机应用', '蚕蜂与野生动物保护; 农业工程', '农业工程', '中医学', '有机化工; 矿业工程',
       '建筑科学与工程; 环境科学与资源利用', '仪器仪表工业; 医药卫生方针政策与法律法规研究; 生物医学工程',
       '建筑科学与工程; 公路与水路运输', '矿业工程', '药学', '安全科学与灾害防治', '农艺学', '化学; 无机化工',
       '冶金工业', '核科学技术', '铁路运输; 公路与水路运输', '泌尿科学', '外科学; 生物医学工程',
       '蚕蜂与野生动物保护', '医药卫生方针政策与法律法规研究', '物理学', '工业通用技术及设备; 机械工业', '铁路运输',
       '体育', '预防医学与卫生学; 生物医学工程', '物理学; 无线电电子学', '预防医学与卫生学', '植物保护',
       '呼吸系统疾病', '无线电电子学; 轻工业手工业', '畜牧与动物医学; 水产和渔业', '气象学', '特种医学',
       '消化系统疾病', '无机化工; 有机化工; 工业通用技术及设备', '农业基础科学', '金属学及金属工艺; 轻工业手工业',
       '水产和渔业; 畜牧与动物医学', '燃料化工', '林业', '生物学', '轻工业手工业; 出版',
       '医药卫生方针政策与法律法规研究; 生物医学工程', '有机化工; 轻工业手工业', '公路与水路运输; 矿业工程',
       '轻工业手工业; 计算机硬件技术', '地质学', '海洋学', '地质学; 石油天然气工业', '公路与水路运输; 铁路运输',
       '有机化工; 化学', '特种医学; 生物医学工程', '自然地理学和测绘学', '轻工业手工业; 林业', '中药学',
       '一般化学工业; 轻工业手工业', '妇产科学', '中西医结合', '临床医学; 特种医学', '燃料化工; 轻工业手工业',
       '地球物理学', '化学; 有机化工', '公路与水路运输; 建筑科学与工程', '轻工业手工业; 水产和渔业',
       '石油天然气工业', '眼科与耳鼻咽喉科; 口腔科学', '肿瘤学', '环境科学与资源利用; 建筑科学与工程', '基础医学',
       '急救医学', '仪器仪表工业; 生物医学工程', '心血管系统疾病', '互联网技术', '矿业工程; 公路与水路运输',
       '农作物', '公路与水路运输; 水利水电工程', '水利水电工程; 电力工业', '畜牧与动物医学; 农业工程',
       '材料科学; 生物医学工程', '安全科学与灾害防治; 建筑科学与工程', '植物保护; 农艺学',
       '轻工业手工业; 一般化学工业', '消化系统疾病; 外科学', '水产和渔业; 轻工业手工业',
       '建筑科学与工程; 安全科学与灾害防治', '农作物; 园艺', '急救医学; 生物医学工程', '水利水电工程; 公路与水路运输',
       '皮肤病与性病', '工业通用技术及设备; 戏剧电影与电视艺术', '眼科与耳鼻咽喉科; 生物医学工程', '人才学与劳动科学',
       '外科学; 口腔科学; 生物医学工程'], dtype=object)



四、可视化

import pandas as pd

#为减轻内存压力,可以选择需要的字段读取
cols = ['申请日', '授权公布日']

#读取数据
guangdong_df = pd.read_csv('广东省.csv.gz', compression='gzip', usecols=cols, encoding='utf-8', low_memory=False)
jiangsu_df = pd.read_csv('江苏省.csv.gz', compression='gzip', usecols=cols, encoding='utf-8', low_memory=False)
shandong_df = pd.read_csv('山东省.csv.gz', compression='gzip', usecols=cols, encoding='utf-8', low_memory=False)
zhejiang_df = pd.read_csv('浙江省.csv.gz', compression='gzip', usecols=cols, encoding='utf-8', low_memory=False)
beijing_df = pd.read_csv('北京市.csv.gz', compression='gzip', usecols=cols, encoding='utf-8', low_memory=False)
shanghai_df = pd.read_csv('上海市.csv.gz', compression='gzip', usecols=cols, encoding='utf-8', low_memory=False)

#显示前5行
shanghai_df.head()


import matplotlib.pyplot as plt
import matplotlib
import matplotlib_inline
matplotlib_inline.backend_inline.set_matplotlib_formats('png', 'svg')
import scienceplots
import platform
plt.style.use(['science', 'no-latex', 'cjk-sc-font'])
system = platform.system()  # 获取操作系统类型

if system == 'Windows':
    font = {'family': 'SimHei'}
elif system == 'Darwin':
    font = {'family': 'Arial Unicode MS'}
else:
    font = {'family': 'sans-serif'}
matplotlib.rc('font', **font)  # 设置全局字体
    
plt.figure(figsize=(12, 8))
years = [str(y) for y in range(2000, 2020)]


guangdong_df['申请日'].str.slice(0, 4).value_counts(ascending=True)[years].plot(label='广东', linewidth=2)
jiangsu_df['申请日'].str.slice(0, 4).value_counts(ascending=True)[years].plot(label='江苏', linewidth=2)
zhejiang_df['申请日'].str.slice(0, 4).value_counts(ascending=True)[years].plot(label='浙江', linewidth=2)
shandong_df['申请日'].str.slice(0, 4).value_counts(ascending=True)[years].plot(label='山东', linewidth=2)
beijing_df['申请日'].str.slice(0, 4).value_counts(ascending=True)[years].plot(label='北京', linewidth=2)
shanghai_df['申请日'].str.slice(0, 4).value_counts(ascending=True)[years].plot(label='上海', linewidth=2)
hebei_df['申请日'].str.slice(0, 4).value_counts(ascending=True)[years].plot(label='河北', linewidth=2)



plt.title('七省市专利申请量(2000年-2019年)', fontsize=16, color='black', ha='center')
plt.xlabel('年份(按申请日统计)')
plt.ylabel('申请量')
plt.legend(loc='upper right')
plt.show()    

  • 2012年, 申请量开始下降, 直至2014年,触底反弹。这个时期国内外宏观经济发生了什么?

  • 不考虑人口规模, 在专利申请量可以看出广东、江苏、浙江体量还是比北京、上海、河北要高的。

  • 2015年开始, 广东触底反弹后, 拉开了与江苏、浙江的体量。



五、获取数据

1. 付费数据集,100元;加微信 372335839, 备注「姓名-学校-专业」。

2. 数据是虚拟产品,一经售出,不再退还!

3. 大家时间其实都很宝贵,请仔细阅读推文内容, 确认无误再加微信详谈购买事宜 



六、相关文献

使用专利数据做研究的文献

[1]Bellstam, Gustaf, Sanjai Bhagat, and J. Anthony Cookson. "A text-based analysis of corporate innovation." _Management Science_ 67, no. 7 (2021): 4004-4031.
[2]Arts, Sam, Bruno Cassiman, and Jianan Hou. "Position and Differentiation of Firms in Technology Space." Management Science (2023).



广而告之