代码之家  ›  专栏  ›  技术社区  ›  PeCaDe

从pandas multindex的子集获取索引[重复]

  •  1
  • PeCaDe  · 技术社区  · 8 年前

    pandas.core.frame.DataFrame 样品:

            col
    0   2   0
        0   1
        3   1
    

    我想得到col为1的索引:

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

    预期的结果是矢量 (0,3) .

    2 回复  |  直到 8 年前
        1
  •  2
  •   jpp    8 年前

    可以使用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])
    
        2
  •  1
  •   Sharku    8 年前

    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]