如何用Python合并CSV文件中permno_adj与publn_year列
解决方法
要把permno_adj和publn_year合并成你需要的格式,核心就是把整数类型的publn_year转成字符串,再和permno_adj直接拼接。以下是两种简单高效的实现方式:
方法一:直接用字符串拼接运算符
这是最直观的写法,先通过astype(str)把年份转成字符串,再和permno_adj拼接:
# 新增合并后的列,命名为combined_id(可自定义列名) patents['combined_id'] = patents['permno_adj'] + patents['publn_year'].astype(str)
方法二:用pandas的str.cat()方法
如果需要更灵活的拼接控制(比如后续加分隔符),可以用str.cat():
patents['combined_id'] = patents['permno_adj'].str.cat(patents['publn_year'].astype(str), sep='')
完整代码示例
把拼接逻辑整合到你的现有代码里:
import pandas as pd patents = pd.read_csv('E:/Work/file.csv') patents = patents[['publn_nr', 'permno_adj', 'publn_year', 'IPC1']].dropna().drop_duplicates().reset_index(drop=True) patents = patents[(patents['publn_year'] >= 1980) & (patents['publn_year'] < 2016)].reset_index(drop=True) # 执行合并操作 patents['combined_id'] = patents['permno_adj'] + patents['publn_year'].astype(str) print(patents)
运行后输出会新增combined_id列,效果如下:
publn_nr permno_adj publn_year IPC1 combined_id 0 1830 US4060B 2005 F16F US4060B2005 1 24429 US4060A 2004 B29C US4060A2004 2 24943 US1794 2006 C08J US17942006 3 26115 US133366B 1999 A61B US133366B1999 4 31737 US4060A 2004 C08F US4060A2004
内容的提问来源于stack exchange,提问作者Gaju_masare
相关产品推荐
相关产品推荐

