我有一个这样的数据框:
A B C D
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
而且我正在编写一段代码来识别我需要的列索引。
RequiredColumns = (skb.get_support(indices=True))
Out[64]: array([ 0, 1], dtype=int64)
我将仅采用这些列并将其添加到新的数据框中。
为此,我编写了这段代码
FeatureSelected_DataFrame = pd.DataFrame()
for i in RequiredColumns:
ColIndex = i
ReqColumn = X[[i]]
FeatureSelected_DataFrame = FeatureSelected_DataFrame.append(ReqColumn)
但这是我得到的输出:
FeatureSelected_DataFrame
A B
1 NaN
1 NaN
NaN 2
NaN 2
我的预期输出是-
A B
1 2
1 2
最佳答案
我认为您可以将iloc
位置选择的列附加到列表中,然后再添加concat
:
L = []
RequiredColumns = np.array([0,1])
for i in RequiredColumns:
ReqColumn = X.iloc[:, i]
L.append(ReqColumn)
FeatureSelected_DataFrame = pd.concat(L, axis=1)
print (FeatureSelected_DataFrame)
A B
0 1 2
1 1 2
2 1 2
3 1 2
更好的非循环解决方案是:
RequiredColumns = np.array([0,1])
df = X.iloc[:, RequiredColumns]
print (df)
A B
0 1 2
1 1 2
2 1 2
3 1 2