Давайте создадим пример данных:
import pandas as pd
cols = ['ColFoo', 'Values']
dfA = pd.DataFrame([['a', 10], ['b', 11]], columns = cols)
dfB = pd.DataFrame([['d', 12], ['e', 13]], columns = cols)
dfC = pd.DataFrame([['g', 14], ['h', 15]], columns = cols)
dfD = pd.DataFrame([['j', 16], ['k', 17]], columns = cols)
dfE = pd.DataFrame([['m', 18], ['n', 19]], columns = cols)
dfF = pd.DataFrame([['p', 20], ['q', 21]], columns = cols)
# For example, the dfA is:
# ColFoo Values
# ------ ------
# a 10
# b 11
# Build dict_results
dict_results = {'ID_1542': {0: dfA, 1: dfB, 2: dfC},
'ID_8468': {0: dfD, 1: dfE, 2: dfF}}
Окончательный результат, который, я думаю, вы ищете:
df ID_1542 ID_8468
------- ------- -------
0 21 33
1 25 37
2 29 41
Итак:
# Dictionary to summarize data
d = {}
# Loop over "Values":
# kf: Key father
# kc: Key child
for kf in dict_results:
d[kf]={}
for kc in dict_results[kf]:
d[kf][kc] = dict_results[kf][kc]['Values'].sum()
# Convert dictionary to dataframe
df_sum = pd.DataFrame.from_dict(d)
# In case you want to have the index as a independent column
df_sum.reset_index().rename(columns={"index":"df_kc"})