小编shi*_*uku的帖子

Python pandas 创建不均匀的多索引

我有以下代码,

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)
Run Code Online (Sandbox Code Playgroud)

打印以下索引:

MultiIndex([(  'PATRIMONY',      'GOLD'),
            (     'ASSETS',  'DEPOSITS'),
            (     'ASSETS',  'ADVANCES'),
            ('LIABILITIES',   'CLIENTS'),
            ('LIABILITIES', 'SUPPLIERS')],
           )
Run Code Online (Sandbox Code Playgroud)

(我使用.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'
Run Code Online (Sandbox Code Playgroud)

这意味着多重索引将是不均匀的,第三个级别仅由“LIABILITIES”使用,并且根据客户名称或供应商名称为 CLIENTS 和 SUPPLIERS 使用不同的索引。我尝试附加以下索引:

IDX_FIRST_EXTENSION_NAMES = [['LIABILITIES'], ['CLIENTS'], ['Dr. Foo', 'Dr. House', …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

5
推荐指数
1
解决办法
108
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1