如何用Python Pandas拆分CSV作者列并匹配对应关键词
拆分CSV作者并匹配关键词的实现方案
需求说明
原CSV中同一行包含多位作者,需要将每位作者单独成行,且每行对应相同的关键词列表,输出符合指定格式的新CSV文件。
完整代码实现
import pandas as pd # 读取原CSV文件 df = pd.read_csv("scopus.csv") # 1. 拆分Authors列,将多位作者拆分为单独行 df['author'] = df['Authors'].str.split(', ') df_expanded = df.explode('author').reset_index(drop=True) # 2. 拆分Author Keywords列,转为多列关键词 keywords_df = df_expanded['Author Keywords'].str.split('; ', expand=True) keywords_df.columns = [f'keyword{i+1}' for i in range(keywords_df.shape[1])] # 3. 合并作者列与关键词列,生成结果表 result_df = pd.concat([df_expanded[['author']], keywords_df], axis=1) # 4. 导出为新CSV文件 result_df.to_csv("authors_with_keywords.csv", index=False)
代码步骤解释
- 拆分作者并展开行:用
str.split(', ')将Authors字段的多位作者拆分为列表,再通过explode方法把列表中的每个作者单独成行,确保每行对应一位作者。 - 拆分关键词为多列:使用
str.split('; ', expand=True)把关键词字符串拆分为多列,同时给每列命名为keyword1、keyword2等,匹配目标格式的列名要求。 - 合并与输出:将作者列和拆分后的关键词列横向合并,最后导出为新CSV文件,
index=False参数避免生成多余的索引列。
输出效果
生成的authors_with_keywords.csv内容示例:
author,keyword1,keyword2,keyword3,keyword4,keyword5,keyword6 Bennacer S.A.,Blockchain technology,Data management,Data security and privacy,Data sharing,Electronic health record,Healthcare Sabiri K.,Blockchain technology,Data management,Data security and privacy,Data sharing,Electronic health record,Healthcare Aaroud A.,Blockchain technology,Data management,Data security and privacy,Data sharing,Electronic health record,Healthcare Akodadi K.,Blockchain technology,Data management,Data security and privacy,Data sharing,Electronic health record,Healthcare Cherradi B.,Blockchain technology,Data management,Data security and privacy,Data sharing,Electronic health record,Healthcare
内容的提问来源于stack exchange,提问作者Nada code
相关产品推荐
相关产品推荐

