Как сдвинуть всю группу из нескольких столбцов - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть такой кадр данных, как показано ниже:

import pandas as pd
import numpy as np
np.random.seed(22)
df = pd.DataFrame.from_dict({'a': np.random.rand(200), 'b': np.random.rand(200), 'x': np.tile(np.concatenate([np.repeat('F', 5), np.repeat('G', 5)]), 20)})
df.index = pd.MultiIndex.from_product([[1, 2], list(range(0, 10)), [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]])
df.index.names = ['g_id', 'm_id', 'object_id']

Я бы хотел сместить значения для всех групп, определенных как ['g_id', 'm_id'], например:

  • значение ['a', 'b'] столбцов в индексе (1, 1, 1) нового фрейма данных будет значением из индекса (1, 0, 1) исходного фрейма данных, т.е. [0.208461, 0.980866]
  • значение ['a', 'b'] столбцов в индексе (2, 4, 3) нового фрейма данных будет значением из индекса (2, 3, 3) исходного фрейма данных, т.е. [0.651138, 0.559126].

Операция аналогична описанной в this топи c. Однако мне нужно сделать это с несколькими столбцами, и мне не повезло, пытаясь обобщить предоставленное решение.

...