【问题标题】:Multi-indexed row and columns多索引行和列
【发布时间】:2019-10-16 23:35:42
【问题描述】:

如何在python中对行和列进行多索引?

【问题讨论】:

  • df.loc[:, 'B'] 另外,“我该怎么做”是什么意思?做什么?给定图像,我假设选择 B 的所有列。

标签: python pivot-table data-science crosstab


【解决方案1】:

https://pandas.pydata.org/pandas-docs/stable/user_guide/advanced.html#advanced-indexing-with-hierarchical-index

import pandas as pd  # Pandas isn't mentioned in the tags, but the image looks like a pandas dataframe.

idx = pd.MultiIndex.from_product([[f'System {s}' for s in 'ABC'], list('FM')], names=[None, 'Sex'])
cols = pd.MultiIndex.from_tuples([('A', 1), ('A', 2), ('B', 1), ('B', 2), ('B', 3), ('C', 1), ('C', 2)])
df = pd.DataFrame(data=1, columns=cols, index=idx)

>>> df
              A     B        C   
              1  2  1  2  3  1  2
         Sex                     
System A F    1  1  1  1  1  1  1
         M    1  1  1  1  1  1  1
System B F    1  1  1  1  1  1  1
         M    1  1  1  1  1  1  1
System C F    1  1  1  1  1  1  1
         M    1  1  1  1  1  1  1

>>> df.loc[:, 'B']
              1  2  3
         Sex         
System A F    1  1  1
         M    1  1  1
System B F    1  1  1
         M    1  1  1
System C F    1  1  1
         M    1  1  1

或者使用 IndexSlice。

>>> df.loc[:, pd.IndexSlice['B', :]]
              B      
              1  2  3
         Sex         
System A F    1  1  1
         M    1  1  1
System B F    1  1  1
         M    1  1  1
System C F    1  1  1
         M    1  1  1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2021-12-17
    • 2011-11-07
    • 2010-09-15
    相关资源
    最近更新 更多