【问题标题】:get index from subset of pandas multindex [duplicate]从熊猫多索引的子集中获取索引[重复]
【发布时间】:2019-01-26 10:06:43
【问题描述】:

鉴于此pandas.core.frame.DataFrame 示例:

        col
0   2   0
    0   1
    3   1

我想获取 col 为 1 的那些索引:

df[df['col']==1]

预期的结果将是一个向量(0,3)

【问题讨论】:

    标签: python pandas numpy indexing multi-index


    【解决方案1】:

    这可能会奏效:

    import pandas as pd
    
    d = {'base':[2,0,3],'col':[0,1,1]}
    df = pd.DataFrame(data=d)
    col_is_1 = df['col'] == 1
    df_temp = df[col_is_1]
    matrix = df_temp.values
    vec = matrix[:,0]
    print(vec)
    

    按预期返回 [0,3]

    【讨论】:

      【解决方案2】:

      您可以使用 NumPy 创建一个索引数组,然后过滤第二个索引:

      import numpy as np
      
      df = pd.DataFrame({'col': [0, 1, 1]},
                        index=pd.MultiIndex.from_tuples([(0, 2), (0, 0), (0, 3)]))
      
      #      col
      # 0 2    0
      #   0    1
      #   3    1
      
      idx = np.array(df[df['col'] == 1].index.tolist())
      
      # array([[0, 0],
      #        [0, 3]])
      
      res = idx[:, 1]
      
      # array([0, 3])
      

      【讨论】:

        猜你喜欢
        • 2020-01-12
        • 1970-01-01
        • 2021-03-15
        • 2013-12-04
        • 2014-04-26
        • 2016-10-16
        • 2019-01-19
        • 2016-06-13
        • 2018-08-24
        相关资源
        最近更新 更多