Search code examples
pythonpandasdataframesklearn-pandas

Extract DataFrame from a list of indices of another DataFrame


I've a DataFrame "A" and a list of indices "I". I want to generate/get a DataFrame "B" which contains only the data in those indices "I" of the original DataFrame "A". How can I achieve this?

Assuming I = [1, 3] , I tried this A.filter(items=I, axis=0) is this the right way, or is there an even better way to do it.


Solution

  • I think to need DataFrame.loc:

    A = pd.DataFrame({
        'A': ['a','a','a','a','b','b','b','c','d'],
        'B': list(range(9))
    })
    print (A)
       A  B
    0  a  0
    1  a  1
    2  a  2
    3  a  3
    4  b  4
    5  b  5
    6  b  6
    7  c  7
    
    I = [1,3]
    B = A.loc[I]
    print (B)
       A  B
    1  a  1
    3  a  3