Pandas 循环将数据帧与groupby sum合并在一起
我有一个函数,它通过API循环获取结果并将其解析为数据帧: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
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
现在具有两个数据帧
希望这就是你要找的