Pandas 遍历行并将 API 响应附加为新列
Pandas iterate over rows and append API response as a new column
感谢您抽出宝贵时间查看此内容,
我想按行遍历数据框并使用单元格值从 api 中提取数据并将响应分配给新列。这是我试过的:
for index, row in d.iterrows():
response=requests.get('https://api.github.com/repos/{}/{}/issues/{}'.format(row['ownr'],row['repo'],row['issues']),headers=headers)
row['issueData']=response.json()
但是在运行之后这段代码df似乎没有issueData
列。
我哪里错了?
我正在使用 Github's endpoint 提取数据并验证是否有响应。
这是 df 的示例:
df = pd.DataFrame({'ownr':['vuejs', 'vuejs', 'vuejs'],
'repo':['vue', 'vue', 'vue-cli'],
'issues': ['12040','11794','6448']})
使用 apply()
会是更好的选择。
def fetch(row):
response=requests.get(f"https://api.github.com/repos/{row['ownr']}/{row['repo']}/issues/{row['issues']}",headers=headers)
return response.json()
d['issueData'] = d.apply(lambda row: fetch(row), axis=1)
在您的原始示例中,您需要先将列设置为空字符串,然后执行获取数据的操作。
d['issueData'] = ""
for index, row in d.iterrows():
response=requests.get('https://api.github.com/repos/{}/{}/issues/{}'.format(row['ownr'],row['repo'],row['issues']),headers=headers)
row['issueData']=response.json()
感谢您抽出宝贵时间查看此内容,
我想按行遍历数据框并使用单元格值从 api 中提取数据并将响应分配给新列。这是我试过的:
for index, row in d.iterrows():
response=requests.get('https://api.github.com/repos/{}/{}/issues/{}'.format(row['ownr'],row['repo'],row['issues']),headers=headers)
row['issueData']=response.json()
但是在运行之后这段代码df似乎没有issueData
列。
我哪里错了?
我正在使用 Github's endpoint 提取数据并验证是否有响应。
这是 df 的示例:
df = pd.DataFrame({'ownr':['vuejs', 'vuejs', 'vuejs'],
'repo':['vue', 'vue', 'vue-cli'],
'issues': ['12040','11794','6448']})
使用 apply()
会是更好的选择。
def fetch(row):
response=requests.get(f"https://api.github.com/repos/{row['ownr']}/{row['repo']}/issues/{row['issues']}",headers=headers)
return response.json()
d['issueData'] = d.apply(lambda row: fetch(row), axis=1)
在您的原始示例中,您需要先将列设置为空字符串,然后执行获取数据的操作。
d['issueData'] = ""
for index, row in d.iterrows():
response=requests.get('https://api.github.com/repos/{}/{}/issues/{}'.format(row['ownr'],row['repo'],row['issues']),headers=headers)
row['issueData']=response.json()