Создание Pandas Dataframe с многостолбцовым индексом - PullRequest
3 голосов
/ 25 октября 2019

У меня проблема с созданием Pandas Dataframe с мультииндексацией. В приведенных ниже данных вы увидите, что это данные для 2 банков, и каждый банк имеет 2 актива, и каждый актив имеет 3 функции. Мои данные структурированы аналогичным образом, и я хочу создать из них фрейм данных.

Data = [[[2,4,5],[3,4,5]],[[6,7,8],[9,10,11]]]

Banks = ['Bank1', 'Bank2']

Assets = ['Asset1', 'Asset2']

Asset_feature = ['private','public','classified']

Я пробовал разные способы сделать это, но мне всегда не удавалось создать точный фрейм данных. Результат должен выглядеть примерно так:

      Asset1                      Asset2
      private public classified   private public classified
Bank1   2       4       5           3       4       5
Bank2   6       7       8           9       10      11

Любая помощь будет высоко ценится.

1 Ответ

2 голосов
/ 25 октября 2019
import pandas as pd
import numpy as np
assets = ['Asset1', 'Asset2']
Asset_feature = ['private','public','classified']
Banks = ['Bank1', 'Bank2']
Data = [[[2,4,5],[3,4,5]],[[6,7,8],[9,10,11]]]
Data = np.array(Data).reshape(len(Banks),len(Asset_feature) * len(assets))


midx = pd.MultiIndex.from_product([assets, Asset_feature])
test = pd.DataFrame(Data, index=Banks, columns=midx)
test

, который дает этот вывод

       Asset1                    Asset2                  
      private public classified private public classified
Bank1       2      4          5       3      4          5
Bank2       6      7          8       9     10         11
...