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)
使用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)