【发布时间】:2021-01-19 23:05:20
【问题描述】:
我一直在从许多 API 中提取数据。我想在所有 API 中添加一个公共列。 我在下面尝试过
df = pd.DataFrame()
for i in range(1,200):
url = '{id}/values'.format(id=i)
res = request.get(url,headers=headers)
if res.status_code==200:
data =json.loads(res.content.decode('utf-8'))
if data['success']:
df['id'] = i
test = pd.json_normalize(data[parent][child])
df = df.append(test,index=False)
但数据框 id 列我只得到最后一次迭代的 id。如果 API 有很多行,我会得到无效数据。
【问题讨论】:
-
在你的最后一行:df = df.append(test, index=False), 'index=False' 不应该是 'ignore_index=False' 吗?这是 df.append() 的标准参数。
-
抱歉代码更新 df = df.append(test, ignore_index=True)。索引在这里没有问题,只是迭代地附加数据框列。
-
你想用 df['id'] = i 做什么?您反复将 i 值放入 id 列
-
@gtomer 迭代地我想将值附加到 df['id'] 。例如:循环范围为 1..10。 df['id'] 值为 1...10
-
尝试不使用该行: df['id'] = i 。我不明白你为什么需要它
标签: python-3.x pandas dataframe iteration