首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在循环中获取来自多个作者的从属关系信息

在循环中获取来自多个作者的从属关系信息
EN

Stack Overflow用户
提问于 2020-11-19 20:07:41
回答 1查看 169关注 0票数 0

目前正在使用pybliometrics (scopus),我想创建一个循环,允许我从多个作者那里获得从属关系信息。

基本上,这就是我的循环的想法。我如何在很多作者的情况下做到这一点?

代码语言:javascript
复制
from pybliometrics.scopus import AuthorRetrieval
import pandas as pd
import numpy as np  

au = AuthorRetrieval(authorid)
au.affiliation_history
au.identifier
x = au.identifier

refs2 = au.affiliation_history
len(refs2)
refs2
df = pd.DataFrame(refs2)
df.columns
a_history = df
df['authorid'] = x

#moving authorid to 0
cols = list(df)
cols.insert(0, cols.pop(cols.index('authorid')))
df = df.loc[:, cols]

df.to_excel("af_historyfinal.xlsx")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-19 21:20:02

把你的代码变成多个作者ID上的循环?没有比这更简单的了。假设AUTHOR_IDS等于7004212771和57209617104:

代码语言:javascript
复制
import pandas as pd  
from pybliometrics.scopus import AuthorRetrieval

def retrieve_affiliations(auth_id):
    """Author's affiliation history from Scopus as DataFrame."""
    au = AuthorRetrieval(authorid)
    df = pd.DataFrame(au.affiliation_history)
    df["auth_id"] = au.identifier
    return df

AUTHOR_IDS = [7004212771, 57209617104]

# Option 1, for few IDs
df = pd.concat([retrieve_affiliations(a) for a in AUTHOR_IDS])

# Option 2, for many IDs
df = pd.DataFrame():
for a in AUTHOR_IDS:
    df = df.append(retrieve_affiliations(a))

# Have author ID as first column
df = df.set_index("authorid").reset_index()    
df.to_excel("af_historyfinal.xlsx", index=False)

比方说,如果您的ID在名为"input.csv“的逗号分隔的文件中,其中有一列名为"authors",那么您可以从

代码语言:javascript
复制
AUTHOR_IDS = pd.read_csv("input.csv")["authors"].unique()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64911343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档