Я создаю мультиколонку (вложенные столбцы), которая выглядит следующим образом:
input action result
1 2 3 4 action 1 2 3 4
0 89 3 0 5
Затем я хочу добавить значения к нему, чтобы он выглядел так:
input action result
1 2 3 4 action 1 2 3 4
0 89 3 0 5 64 1 54 0 34
воткак я вначале создаю этот фрейм данных (это работает):
def create_memory_from_input(input: dict) -> pd.DataFrame:
''' creates a dataframe from input dictionary'''
arrays = [
['input' for k in sorted(input.keys())] + ['action'] + ['result' for k in sorted(input.keys())],
[k for k in sorted(input.keys())] + ['action'] + [k for k in sorted(input.keys())]]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples)
values = [[v for _,v in sorted(input.items())] + [''] + ['' for _,v in sorted(input.items())]]
return pd.DataFrame(list(values), columns=index)
Вот код, который я должен добавить к действию и результату, но он не работает.Правильно ли я ссылаюсь на вложенные столбцы?
input = {2:3, 1:89, 4:5, 3:0}
original = create_memory_from_input(input)
action = 64
result = {2:54, 1:1, 4:34, 3:0}
original['action']['action'][
(original['input'][1] == 89) &
(original['input'][2] == 3) &
(original['input'][3] == 0) &
(original['input'][4] == 5)] = action
Любые отзывы приветствуются.Я думал о создании нового фрейма данных и последующем объединении входных столбцов, но это не так эффективно, как простая фильтрация фрейма данных и установка для столбцов правильных значений.
что я делаю неправильно?