У меня есть словарь данных с одним столбцом (Di_G).Я хотел бы использовать индекс каждого фрейма данных в Di_G для поиска значения из другого словаря (Di_A).Затем я хотел бы разделить каждое значение каждого отдельного столбца данных в Di_G на его соответствующее значение из Di_A.
import pandas as pd
# Data
df_1 = pd.DataFrame({'Box' : [1006,1006,1006,1006,1006,1006,1007,1007,1007,1007,1008,1008,1008,1009,1009,1010,1011,1011,1012,1013],
'Item': [ 40, 41, 42, 43, 44, 45, 40, 43, 44, 45, 43, 44, 45, 40, 41, 40, 44, 45, 44, 45]})
df_2 = pd.DataFrame({'Box' : [1006,1007,1008,1009,1010,1011,1012,1013,1014],
'Type': [ 103, 101, 102, 102, 102, 103, 103, 103, 103]})
# Join
df_J = df_1 .set_index('Box') .join(df_2 .set_index('Box', 'outer'))
# Count how many Boxes contain each Item - Count Boxes ( Item )
df_G = df_J.groupby('Item').size()
Di_A = df_G.to_dict()
# Group the Boxes by Type
Ma_G = df_J .groupby('Type')
Di_1 = {}
for name, group in Ma_G:
Di_1[str(name)] = group
# Count how many Boxes of each Type contain each Item - Count Boxes ( Item │ Type )
Di_G = {}
for k in Di_1:
Di_G[k] = Di_1[k].groupby('Item').size()
Я попытался сделать это так:
# Pr ( Type │ Item ) = Count Boxes ( Item │ Type ) / Count Boxes ( Item )
for k in Di_G:
Di_G[k]['Pr'] = Di_G[k]['0'] / Di_G[k]['Index'].map(Di_A)
Я получил "KeyError: '0' ".
Я пытался изменить имена столбцов в Di_G & Di_A, но мне было трудно это сделать.