Вот как выглядит мой df:
< thead>
key_1
key_2
key_3
< th>key_4
col_1
col_2
a
b
c
d
1
2
q
w
e
r
3
4
Я хотел бы преобразовать его во вложенный словарь, в котором ключами будут имя неключевого столбца и значения из четырех ключевых столбцов.
ожидаемый результат должен выглядеть следующим образом:
expected_output = {
col_1: {a: {b: {c: {d: 1}}}, q: {w: {e: {r: 3}}}},
col_2: {q: {w: {e: {r: 2}}}, q: {w: {e: {r: 4}}}}
}
Что я уже пробовал:
output = {}
for col in df.columns[~df.columns.isin(['key_1', 'key_2', 'key_3', 'key_4'])]:
output.update({col: {}})
for item in list(temp_df[['key_1', 'key_2', 'key_3', 'key_4']].values):
output[col].setdefault(item[0], {}).setdefault(item[1], {}).setdefault(item[2], {}).setdefault(item[3], {})
output[col][item[0]][item[1]][item[2]][item[3]] = float(df[(df['key_1'] == item[0]) & (df['key_2'] == item[1]) & (df['key_3'] == item[2]) & (df['key_4'] == item[3])][col].values[0])
Подробнее здесь: https://stackoverflow.com/questions/787 ... s-the-keys