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

时间:2020-04-19 14:25:47

标签: python pandas dataframe

我有一个数据框

    'A'   'B'   'C'   'X'   ,'Y'    ,  'Z'
0   
1
2
3
4
5

和列表l=[A,B,C,D,E,F]

我想使用该列表选择列表中的列,但忽略未显示的列。

所以预期的输出是

  'A'   'B'   'C'  
0   
1
2
3
4
5

1 个答案:

答案 0 :(得分:5)

使用DataFrame.loc来选择:的所有行,以及Index.isin创建的掩码的所有列:

df = df.loc[:, df.columns.isin(l)]

或通过Index.intersection获取列名称:

df = df[df.columns.intersection(l)]

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