csv表格转换为wos格式数据并导入citespace进行文献分析

遇到个很奇葩的课程老师,把wos上检索到的2000多篇文献集合下载后又处理成csv格式文件给我们做聚类分析,文件就像这样:
在这里插入图片描述
于是,一个本来可以直接丢给citespace完成的简单任务,变成了要我们手写LDA算法才能实现……于是在chatgpt的帮助下,本线性代数挂科的代码小白怒写了个python脚本将这个csv文件又转置回了wos文件……过程如下……

准备:观察wos格式

观察从wos上下载的正经wos格式的文件,发现规律如下:
在这里插入图片描述

那么我要做的就是
1、将每个字段名转换成对应的wos专有字段名,比如文章名称=》TI,摘要=》AB等等;
2、对表格进行一次行列转置;
3、将每个记录按照次序,一行一行地排列在上个字段的下方,就像图中一行一行地排列那样,并添加PT J和ER这两个起始符和终止符;
4、文件首位的FN,VR,EF加上,搞定。

下面一步步来看:

1、字段名转换

这个没什么难度,对着Web of Science核心收藏领域标签 把表头一个个换掉就行。结果就像这样:
在这里插入图片描述

2、表格行列转置

这个是excel自带的功能,全选表格数据=》打开一个新的表格=》右键=》选择性粘贴=》转置就行。不会的搜一下excel行列转换,网上一大堆教程。最终结果就像这样:
在这里插入图片描述

3、数据处理

这一步开始就需要公式脚本的介入了。那么作为一个代码小白+算法小白该怎么办呢?当然是扔给聪明的chatgpt处理啦(●ˇ∀ˇ●)

在这里插入图片描述
发现了什么问题还可以让它继续改进:
在这里插入图片描述
最终生成的python脚本如下:

import csv

def transpose_columns(input_file, output_file, field_name):
    # 读取输入文件
    with open(input_file, 'r') as file:
        reader = csv.reader(file)
        rows = list(reader)

    # 获取列数
    num_columns = len(rows[0])

    # 转换列
    transposed_rows = []
    for col_index in range(1, num_columns):

        column = [row[col_index] for row in rows]
        transposed_rows.append(['PT J'])  # 添加起始符

        transposed_rows.extend([[row[0], column[i]] for i, row in enumerate(rows)])
        transposed_rows.append(['ER'])  # 添加终止符
        transposed_rows.append([])  # 添加空行

    # 写入输出文件
    with open(output_file, 'w', newline='') as file:
        writer = csv.writer(file)
        writer.writerows(transposed_rows)

 # 示例用法
input_file = 'input.csv'
output_file = 'output.csv'
field_name = 'Field'
transpose_columns(input_file, output_file, field_name)

处理后的csv文件长这样:
在这里插入图片描述
看起来效果不错,不过在wos格式中,字段名和字段值之间是用空格( )隔开的,而不是结果中的逗号(,)。继续把问题丢给chatgpt,获得代码如下:

 def replace_comma_with_space(input_file, output_file):
    with open(input_file, 'r') as file:
        lines = file.readlines()

    modified_lines = []
    for line in lines:
        modified_line = line.replace(',', ' ', 1)
        modified_lines.append(modified_line)

    with open(output_file, 'w') as file:
        file.writelines(modified_lines)

# 示例用法
input_file = 'input.txt' # 就是第一个脚本的输出文件output.csv
output_file = 'output.txt'
replace_comma_with_space(input_file, output_file)

这样,就能把结果里每行的第一个逗号换成空格了。最终获得结果如下:
在这里插入图片描述
最后手动把文件的起始符和终止符加上,文件名一改,大功告成~
在这里插入图片描述
现在就可以拿着它去citespace生成学术垃圾了!导入citespace的方法这篇写得很详细:CiteSpace导入WOS数据详细步骤

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
citespace是一种用于科学文献数据可视化和分析的软件工具。在使用citespace进行WOS(Web of Science)数据分析时,首先需要导出合适的文献数据格式。根据需要选择合适的格式导出文献数据,一般选择"Endnotes"或者"Express"格式。而文献计量数据通常使用"Refworks"或"纯文本txt"格式。为了方便使用citespace进行数据可视化,建议在下载时直接在文件名的前面加个"download_"前缀。\[1\] 另外,在使用citespace进行高级检索时,可以使用布尔逻辑表达式实现更高效的文献检索。布尔逻辑表达式包括AND、OR、NOT等逻辑判断。例如,可以使用WOS高级检索表达式来筛选出符合特定主题的文献,如"TS=(translation) AND TS=(Korean) AND TS=(China)"。这个表达式的含义是:若文献主题满足"translation"并且满足"Korean"并且满足"China",则会被检索出来。\[2\] 因此,使用citespace进行WOS数据分析时,可以根据需要导出合适的文献数据格式,并使用高级检索表达式来筛选出符合特定主题的文献进行分析。 #### 引用[.reference_title] - *1* *2* [基于Citespace软件对WOS文献数据进行可视化的操作](https://blog.csdn.net/Zhwers/article/details/125648414)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值