跳转至

开发记录(二)数据预处理

1 模块介绍

在对关键词进行 合并、首字母大写、词频统计、翻译等一系列处理后,使用词云包与 pyecharts 包来实现关键词词云图的显示。本模块封装在 data_clean.py 文件中。

2 模块设计

2.1 设置工作目录

# 定义要创建的目录的路径
workpath = "../data/output"

# 判断目录是否存在,如果不存在则创建
if not os.path.exists (workpath):
    # 创建目录
    os.makedirs (workpath)

2.2 清洗空列

读取从 WOS 检索结果导出的 excel 表,删为空值的列,并且将显示错误的内容批量修正

def clean_null(inputFile):
    # 读取 xls 文件中的数据
    df = pd.read_excel(f'../data/input/{inputFile}')
    # 删除所有全为缺失值的列
    df = df.dropna(axis=1, how='all')
    # 删除只有列名没有数据的列
    df = df.loc[:, (df.notnull().sum() > 0)]
    # 将 ‐ 和 – 都替换为 -
    df = df.replace({'‐ ': '-', '– ': '-'}, regex=True)
    # 设置输出的文件名
    outputFile = f'{workpath}/wos_cleaned.xlsx'
    # 将处理过的数据导出到新的 Excel 文件中
    df.to_excel(outputFile, index=False)
    return outputFile

2.3 核心数据筛选

将论文的相关核心数据(原文标题,期刊,作者关键词,WOS 关键词,摘要,作者地址,机构,引用次数,发表年份,DOI,研究领域等)从中筛选出来,导出成新的文件

def coreDataSelect(inputFile):
    # 读取 xlsx 文件中的数据
    inputFile = clean_null(inputFile)
    df = pd.read_excel(inputFile)
    # 筛选出目标表头
    df = df.loc[:, ["Article Title", "Source Title", "Author Keywords",
                    "Keywords Plus", 'Abstract', 'Addresses', 'Affiliations', "Times Cited, All Databases", "Publication Year", 'DOI', 'Research Areas']]
    # 将表头进行翻译
    df.columns=["原文标题", "期刊", "作者关键词", "WOS 关键词", "摘要", "作者地址", "机构", "引用次数", "发表年份", "DOI", "研究领域"]
    outputFile = f'{workpath}/wos_coredata_cleaned.xlsx'
    df.to_excel(outputFile, index=False)
    return outputFile

3 主文件调用

3.1 调用模块

在主文件 wos_essay.ipynb 文件中,导入模块,调用核心数据筛选函数

from data_clean import coreDataSelect as data_clean
inputFile1 = 'savedrecs.xls'
outputFile1 = data_clean(inputFile1)

3.2 检查清洗后的数据列

df = pd.read_excel(outputFile1)
df.columns

输出结果如下:

Index(['原文标题', '期刊', '作者关键词', 'WOS 关键词', '摘要', '作者地址', '机构', '引用次数', '发表年份',
       'DOI', '研究领域'],
      dtype='object')

最后更新: 2023-08-16
创建日期: 2023-05-31
作者: gis-xh