Pandas 循环将数据帧与groupby sum合并在一起

Pandas 循环将数据帧与groupby sum合并在一起,pandas,dataframe,Pandas,Dataframe,我有一个函数,它通过API循环获取结果并将其解析为数据帧: consolidated_branch = DataFrame(columns=['Inventory', 'Item1', 'Item2', 'Results']) for each_branch in branches: branch_result = get_branches_details(each_branch) # get_branch_details returns a dataframe print

我有一个函数,它通过API循环获取结果并将其解析为数据帧:

consolidated_branch = DataFrame(columns=['Inventory', 'Item1', 'Item2', 'Results'])
for each_branch in branches:  
    branch_result = get_branches_details(each_branch)  # get_branch_details returns a dataframe
    print(branch_result)

# Loop results: 

      Inventory ...   Results
Year            ...                                
2015  51746398  ...   1090532
2016  33864077  ...   -6915080
2017  43410104  ...   -3224172
2018  48753351  ...   -679117

[4 rows x 9 columns]

      Inventory ...   Results
Year            ...                                               
2017  2028092   ...   6100009
2018  2150537   ...   17570443

[2 rows x 9 columns]

......
如何将每个分支相加成
合并分支
数据帧

我试过:

for each_branch in get_branch_details(branches):
    consolidated_branch  = concat([consolidated_branch, branch_result], axis=0, ignore_index=True).groupby(["Item1"]).sum()

print(consolidated_branch)

# results 

Empty DataFrame
Columns: [Inventory, Item1, Item2, Results]
Index: []

不确定这是否是将数据帧合并在一起的正确方法

在列表理解中首先创建数据帧的列表:

L = [get_branches_details(each_branch) for each_branch in branches]  
或通过循环:

L = []
for each_branch in branches:  
    L.append(get_branches_details(each_branch))
然后与聚合
sum
一起使用:

branch_result =  pd.concat(L, axis=0, ignore_index=True).groupby(["Item1"]).sum()

这里有一个简单的例子,我为连接两个或多个数据帧而编写

import pandas as pd
import numpy as np

# Create dummy dataframes that we need to append
adf= pd.DataFrame(data=np.random.rand(10,3), columns="a b c d".split())
bdf= pd.DataFrame(data=np.random.rand(20,3)*100.0, columns="a b c d".split())


cond= pd.DataFrame()
for df in [adf, bdf]:
    cond=cond.append(df)
cond
现在具有两个数据帧

希望这就是你要找的