У меня есть несколько таблиц, которые выглядят так:
ID YY ZZ
2 97 826
2 78 489
4 47 751
4 110 322
6 67 554
6 88 714
код:
raw = {'ID': [2, 2, 4, 4, 6, 6,],
'YY': [97,78,47,110,67,88],
'ZZ':[826,489,751,322,554,714]}
df = pd.DataFrame(raw)
Для каждого из этих dfs мне нужно выполнить несколько операций.
- Сначала сгруппируйте по id,
- извлеките длину столбца zz и среднее значение столбца zz,
- поместите результаты в новый df
Новый DF, который выглядит следующим образом
Cities length mean
Paris 0 0
Madrid 0 0
Berlin 0 0
Warsaw 0 0
London 0 0
код:
raw2 = {'Cities': ['Paris', 'Madrid', 'Berlin', 'Warsaw', 'London'],
'length': 0,
'mean': 0}
df2 = pd.DataFrame(raw2)
Я вытащил средний и размер отдельных групп
df_grouped = df.groupby('ID').ZZ.size()
df_grouped2 = df.groupby('ID').ZZ.mean()
проблемапроисходит при попытке перенести результаты в новую таблицу, так как она не содержит все города, и результаты должны соответствовать по соответствующему ключу.
Я пытался использовать словарь:
dic_cities = {"Paris":df_grouped.loc[2],
"Madrid":df_grouped.loc[4],
"Warsaw":df_grouped.loc[6],
"Berlin":df_grouped.loc[8],
"London":df_grouped.loc[10]}
К сожалению, я получаю KeyError: 8
У меня есть 19 df, из которых я должен извлечь эти данные, и финальные таблицы должны выглядеть так:
Cities length mean
Paris 2 657.5
Madrid 2 536.5
Berlin 0 0.0
Warsaw 2 634.0
London 0 0.0
Кто-нибудьзнаете, как с этим справиться, используя groupby и словарь, или знаете лучший способ сделать это?