熊猫使用列表选择列但忽略缺少的列名

fre*_*rtz 1 python dataframe pandas

我有一个数据框

    'A'   'B'   'C'   'X'   ,'Y'    ,  'Z'
0   
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

和一个清单 l=[A,B,C,D,E,F]

我想使用该列表来选择列表中的列,但忽略未出现的列。

所以预期的输出是

  'A'   'B'   'C'  
0   
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 8

使用DataFrame.loc的选择由所有行:通过创建和列的面膜Index.isin

df = df.loc[:, df.columns.isin(l)]
Run Code Online (Sandbox Code Playgroud)

或通过Index.intersection以下方式获取列名:

df = df[df.columns.intersection(l)]
Run Code Online (Sandbox Code Playgroud)
print (df)
    A   B   C
0 NaN NaN NaN
1 NaN NaN NaN
2 NaN NaN NaN
3 NaN NaN NaN
4 NaN NaN NaN
5 NaN NaN NaN
Run Code Online (Sandbox Code Playgroud)