Selecting pandas dataframe column by list

前端 未结 4 2024
闹比i
闹比i 2020-12-24 02:27

in one of my scripts I\'m selecting several columns of a dataframe, by a list of the column names. The following code works:

data = df[lst]

4条回答
  •  没有蜡笔的小新
    2020-12-24 02:50

    Few other ways, and list comprehension is much faster

    In [1357]: df[df.columns & lst]
    Out[1357]:
       A  B
    0  1  4
    1  2  5
    2  3  6
    
    In [1358]: df[[c for c in df.columns if c in lst]]
    Out[1358]:
       A  B
    0  1  4
    1  2  5
    2  3  6
    

    Timings

    In [1360]: %timeit [c for c in df.columns if c in lst]
    100000 loops, best of 3: 2.54 µs per loop
    
    In [1359]: %timeit df.columns & lst
    1000 loops, best of 3: 231 µs per loop
    
    In [1362]: %timeit df.columns.intersection(lst)
    1000 loops, best of 3: 236 µs per loop
    
    In [1363]: %timeit np.intersect1d(df.columns, lst)
    10000 loops, best of 3: 26.6 µs per loop
    

    Details

    In [1365]: df
    Out[1365]:
       A  B  C  D  E  F
    0  1  4  7  1  5  7
    1  2  5  8  3  3  4
    2  3  6  9  5  6  3
    
    In [1366]: lst
    Out[1366]: ['A', 'R', 'B']
    

提交回复
热议问题