我有一个数据框,df
,工资数据:
State,Annual Salary
New York, 132826
New Hampshire,128704
California,127388
Vermont,121599
Idaho,120011
还有一个函数,get_taxes_from_api
调用 API 并返回输入州的税号和年薪作为只有 1 行的数据框,如下所示:
State,annual.fica.amount,annual.federal.amount,annual.state.amount
North Carolina,8918,40334,6364
它的类型是:<class 'pandas.core.frame.DataFrame'>
不是系列。
我想在 df 的每一行上调用 API,然后合并每个生成的 1 行数据帧。就像是:
State,Annual Salary,annual.fica.amount,annual.federal.amount,annual.state.amount
North Carolina, 116500,8918,40334,6364
New York, 132826, . . .
New Hampshire,128704, . . .
California,127388, . . .
Vermont,121599, . . .
Idaho,120011, . . .
我该怎么做呢?我遇到了一个错误,我下面的 lambda 创建了一个 Series 而不是一个 dataframe,所以像这里一样使用 result_type=expand 进入了这个兔子洞'https://stackoverflow.com/a/62849468/2415706' https://stackoverflow.com/a/62849468/2415706但它仍然坏了:
all_tax_df = df[['State','Annual Salary']].apply(lambda row: get_taxes_from_api(row['State'],row['Annual Salary']), axis=1, result_type='expand')
# merge all_tax_df with df on 'State'