У меня есть следующий код
IDX_VALS_BANKNOTER_PATRIMONY = [['PATRIMONY'],['GOLD']]
IDX_VALS_BANKNOTER_ASSETS = [['ASSETS'],['DEPOSITS', 'ADVANCES']]
IDX_VALS_BANKNOTER_LIABILITIES = [['LIABILITIES'], ['CLIENTS', 'SUPPLIERS']]
IDX_BANKNOTER_PATRIMONY = pd.MultiIndex.from_product(IDX_VALS_BANKNOTER_PATRIMONY)
IDX_BANKNOTER_ASSETS = pd.MultiIndex.from_product(IDX_VALS_BANKNOTER_ASSETS)
IDX_BANKNOTER_LIABILITIES = pd.MultiIndex.from_product(IDX_VALS_BANKNOTER_LIABILITIES)
IDX_BANKNOTER = IDX_BANKNOTER_PATRIMONY.append(IDX_BANKNOTER_ASSETS).append(IDX_BANKNOTER_LIABILITIES)
print(IDX_BANKNOTER)
, который печатает следующий индекс:
MultiIndex([( 'PATRIMONY', 'GOLD'),
( 'ASSETS', 'DEPOSITS'),
( 'ASSETS', 'ADVANCES'),
('LIABILITIES', 'CLIENTS'),
('LIABILITIES', 'SUPPLIERS')],
)
(я использовал .from_product()
, потому что надеюсь в конечном итоге добавить больше ярлыков) Мой вопрос следующее: я хочу расширить этот мультииндекс на третий столбец, чтобы я получил мультииндекс, который выглядит так:
'PATRIMONY', 'GOLD',
'ASSETS', 'DEPOSITS',
'ASSETS', 'ADVANCES',
'LIABILITIES', 'CLIENTS', 'Dr. Foo'
'LIABILITIES', 'CLIENTS', 'Dr. House'
'LIABILITIES', 'CLIENTS', 'Richard'
'LIABILITIES', 'SUPPLIERS', 'PORT1',
'LIABILITIES', 'SUPPLIERS', 'PORT2'
, что будет означать, что мультииндекс будет неравномерным, с использованием только третьего уровня «ОБЯЗАТЕЛЬСТВА» и отдельные индексы для КЛИЕНТОВ и ПОСТАВЩИКОВ в соответствии с именем клиента или именем поставщика. Я пробовал добавить следующие индексы:
IDX_FIRST_EXTENSION_NAMES = [['LIABILITIES'], ['CLIENTS'], ['Dr. Foo', 'Dr. House', 'Richard']]
IDX_FIRST_EXTENSION = pd.MultiIndex.from_product(IDX_FIRST_EXTENSION_NAMES)
IDX_SECOND_EXTENSION_NAMES = [['LIABILITIES'], ['SUPPLIERS'], ['PORT1', 'PORT2']]
IDX_SECOND_EXTENSION = pd.MultiIndex.from_product(IDX_SECOND_EXTENSION_NAMES)
DESIRED_RESULT = IDX_BANKNOTER.append(IDX_FIRST_EXTENSION).append(IDX_SECOND_EXTENSION)
, но все, что я получаю взамен:
MultiIndex([( 'PATRIMONY', 'GOLD'),
( 'ASSETS', 'DEPOSITS'),
( 'ASSETS', 'ADVANCES'),
('LIABILITIES', 'CLIENTS'),
('LIABILITIES', 'CLIENTS'),
('LIABILITIES', 'CLIENTS'),
('LIABILITIES', 'SUPPLIERS'),
('LIABILITIES', 'SUPPLIERS')],
)
Я новичок в использовании pandas, а документация по мультииндексам не имеет Это не помогло (у него довольно ограниченное количество примеров инициализации мультииндексов, и нет примеров неравномерного мультииндекса). У кого-нибудь есть указатели? Я делаю этот мультииндекс, чтобы легко манипулировать соответствующими данными, например, имея возможность получить доступ к определенной учетной записи клиента c с помощью
df['LIABILITIES']['CLIENTS']['(CLIENT NAME)']
или получить сумму всех значений ниже ['CLIENTS']
. В идеале я хотел бы сохранить столбцы фрейма данных для меток времени.
Любая помощь приветствуется, спасибо.