我正在通过api抓取数据,我需要通过1个函数同时获取2个数据帧。但是,我在下面编写的代码无法完成任务。如何修改它以便在一个函数中获得两个df?
def get_qa(question):
num = 1
row = []
people = []
for ans in question.answers:
if num< question.answer_count:
a = get_answer_data()
b = get_author()
s = {**a,**b}
row.append(s)
pt = get_people_detail()
people.append(pt)
num+=1
#time.sleep(random.randint(0,2))
df_qa = pd.DataFrame(row)
df_people = pd.DataFrame(people)
return df_qa,df_people
--------更新--------
感谢您所有的帮助。
使用a, b = get_qa(question)
后,我可以成功获得两个df。但是,我得到的数据框似乎只收到列表中的最后一项。
<bound method NDFrame.add_prefix of ans_id author_id author_name business \
0 572182013 16b179b9de836c121ace0aabdd2611a0 钱二胖 市场推广
1 572182013 16b179b9de836c121ace0aabdd2611a0 钱二胖 市场推广
2 572182013 16b179b9de836c121ace0aabdd2611a0 钱二胖 市场推广
3 572182013 16b179b9de836c121ace0aabdd2611a0 钱二胖 市场推广
4 572182013 16b179b9de836c121ace0aabdd2611a0 钱二胖 市场推广
5 572182013 16b179b9de836c121ace0aabdd2611a0 钱二胖 市场推广
df的长度为corrent(原始数据包含6个项目)返回是否引起了问题? 还是我调用函数应该对失败负责的方式?
答案 0 :(得分:0)
如果您的lhs也是一个元组,这实际上应该可以工作。
def get_qa():
return 4, 5
a, b = get_qa()
print(a, b)
打印出
4 5
答案 1 :(得分:0)
除了缩进,我确信您没有做任何妥协似乎是错误的。调用函数时是否同时捕获了两个数据帧?您应该尝试以下操作。调用该函数只会在输出中显示第一个数据帧。
df_qa, df_people = get_qa(questions)