Python 代码解析:使用 Pandas 和 NumPy 计算 ResearchAreas 共现频率
这段代码使用 Pandas 和 NumPy 库来读取一个名为'20230426refcooc.csv'的 CSV 文件,并将其中的数据按照'pubid'变量进行分组。然后,它初始化一个共现矩阵,矩阵的行表示每个不同的'pubid',列表示每个不同的'ResearchAreas'。接下来,代码遍历每个'pubid'分组并获取该分组中的'ResearchAreas',遍历每个'ResearchAreas'并找到它在矩阵中的位置,然后在对应的位置加 1。最后,代码将矩阵转换为一个 DataFrame 并打印输出。
这段代码的目的是计算'ResearchAreas'的共现频率,并将其可视化为一个 DataFrame。
代码解析:
import pandas as pd
import numpy as np
# 读入csv文件
data = pd.read_csv('20230426refcooc.csv')
# 按照pubid变量进行分组
groups = data.groupby('pubid')
# 初始化共现矩阵
research_areas = np.zeros((len(groups), len(data['ResearchAreas'].unique())))
# 遍历每个pubid分组
for i, (_, group) in enumerate(groups):
# 获取该分组中的ResearchAreas
areas = group['ResearchAreas'].unique()
# 遍历该分组中的每个ResearchAreas
for area in areas:
# 获取该ResearchAreas在矩阵中的索引
j = np.where(data['ResearchAreas'].unique() == area)[0][0]
# 在矩阵中对应位置加1
research_areas[i, j] += 1
# 将矩阵转化为DataFrame
df = pd.DataFrame(research_areas, columns=data['ResearchAreas'].unique(), index=groups.groups.keys())
print(df)
代码功能:
- 使用
pd.read_csv()读取 CSV 文件。 - 使用
data.groupby('pubid')按照 'pubid' 变量对数据进行分组。 - 初始化一个零矩阵,矩阵的行表示每个不同的 'pubid',列表示每个不同的 'ResearchAreas'。
- 遍历每个 'pubid' 分组,获取该分组中的 'ResearchAreas'。
- 遍历每个 'ResearchAreas',找到它在矩阵中的位置,并在对应位置加 1。
- 使用
pd.DataFrame()将矩阵转换为一个 DataFrame。 - 打印输出 DataFrame。
代码应用场景:
这段代码可以用来分析 'ResearchAreas' 之间的共现关系,并可视化共现频率。例如,可以通过观察矩阵中哪些位置的值较大,来判断哪些 'ResearchAreas' 经常一起出现。
原文地址: https://www.cveoy.top/t/topic/nTpe 著作权归作者所有。请勿转载和采集!