Получение многомерных массивов из Pandas DataFrame - PullRequest
0 голосов
/ 23 октября 2018

В настоящее время я работаю над многомерным массивом NumPy со следующей структурой:

rawr = [ [[A B C] [A B C]] [[...] [...]] ]

Я пытаюсь сложить два последних значения ('B' и 'C') каждой записи в том же измерении, значение A которой является одинаковым, и оставьте только одну запись с этим конкретным индексом.В качестве примера, рассматривая следующую конфигурацию:

[ [[4 5 0.3] [4 3 0.6]] [[8 5 0.3] [4 9 0.8]] ]

Надлежащий вывод должен выглядеть следующим образом:

[ [[4  8 0.9]] [[8 5 0.3] [4 9 0.8]] ]

При поиске похожих вопросов я наткнулся на этот подход с использованием кадров данных Panda:

x,y,z = rawr.shape
out_arr = np.column_stack((np.repeat(np.arange(x),y),rawr.reshape(x*y,-1)))
out_df = pd.DataFrame(out_arr, columns = ["I", "A", "B", "C"])
wbyt = out_df.groupby(["I", "A"], sort = True).sum().reset_index()

, что приводит к следующему выводу:

            I       A        B     C
0         0.0      4.0       8.0    0.9
1         1.0      4.0       9.0    0.8
2         1.0      8.0       5.0    0.3

Значения были правильно обновлены, но теперь я не могу получить правильный вывод из результирующего кадра данных.

--- Редактирование для добавления дополнительной информации ---

Что я действительно хочу, и учитывая то, чего я уже достиг с Pandas, - это получить массив, содержащий группы массивов, значение которых 'I'та же.Итак, следуя приведенному выше примеру, результирующий массив должен содержать следующие два блока:

[[4 8 0,9]] и [[4 9 0,8] [8 5 0,3]]

Anyидеи о том, как мне этого добиться?

Спасибо

1 Ответ

0 голосов
/ 23 октября 2018

Попробуйте ниже для уже сформированного вывода:

df[['t_index', 'p_weight', 'p_vol']].values

Это даст numpy.array

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...