Группировать столбец df на основе более чем трех столбцовPython

Программы на Python
Ответить
Anonymous
 Группировать столбец df на основе более чем трех столбцов

Сообщение Anonymous »

У меня есть файл df, в котором есть 3 столбца, например «Регион», «Страна» и «AREA_CODE».

Код: Выделить всё

Region      Country     AREA_CODE   AREA_SUB_CODE_1     AREA_SUB_CODE_2
===========================================================================
AMER       US             A1            A1_US_1           A1_US_2
AMER       CANADA         A1            A1_CA_1           A1_CA_2
AMER       US             B1            B1_US_1           B1_US_2
AMER       US             A1            A1_US_1           A1_US_2
Есть ли способ получить выходной список AREA_SUB_CODE_1 и AREA_SUB_CODE_2 в виде списка под каждым значением предыдущего столбца. что-то вроде приведенного ниже

Код: Выделить всё

{
"AREA_SUB_CODE_1": {
"AMER": {
"US": {
"A1": ["A1_US_1"],
"B1": ["B1_US_1"]
},
"CANADA": {
"A1": ["A1_CA_1"],
}
}
},
"AREA_SUB_CODE_2": {
"AMER": {
"US": {
"A1": {
"A1_US_1": ["A1_US_2"]
},
"B1": {
"B1_US_1": ["B1_US_2"]
},
"CANADA": {
"A1": {
"A1_CA_1": ["A1_CA_2"],
}
}
}
},
}
До сих пор я пытался группировать по 3 столбцам, это работает,

Код: Выделить всё

for (k1, k2), v in df.groupby(['Region', 'Country'])['AREA_CODE']:
tTmp.setdefault(k1, {})[k2] = sorted(v.unique())

Но когда я пытаюсь сгруппировать 4 столбца, выдает ошибку слишком много значений для распаковки (ожидается 2)

Код: Выделить всё

for (k1, k2), v in df.groupby(['Region', 'Country', 'AREA_CODE'])['AREA_SUB_CODE_1']:
tTmp.setdefault(k1, {})[k2] = sorted(v.unique())
Пожалуйста, предложите мне способ применения groupby для 4 и 5 столбцов. Или любой другой способ добиться этого.
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -3-columns
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»