Lui*_*uis 3 python numpy dataframe pandas
我需要获取pandas DataFrame的列名,其中列与numpy数组中的列匹配.
例
import numpy as np
import pandas as pd
x = pd.DataFrame( data=[[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]], columns=list('abc') )
y = np.array( x[['b','c']] )
y
Run Code Online (Sandbox Code Playgroud)
y 然后是DataFrame的第二和第三列:
array([[0, 1],
[1, 0],
[0, 0],
[1, 1],
[1, 0],
[1, 1]])
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得列名其中y是x?(在这种情况下b,c)
我正在寻找类似的东西:
x[ x==y ].columns
Run Code Online (Sandbox Code Playgroud)
要么
pd.DataFrame(y).isin(x)
Run Code Online (Sandbox Code Playgroud)
该示例由特征选择问题驱动,并且是从sklearn页面获取的.
我正在使用numpy 1.11.1和pandas 0.18.1.
这是一种方法NumPy broadcasting-
x.columns[(x.values[...,None] == y[:,None]).all(0).any(1)]
Run Code Online (Sandbox Code Playgroud)