我一直在嘗試構建一個預處理管道,但是我正在努力為作為物件 dtype 的每一列生成索引串列。我已經能夠使用以下代碼將每個名稱放入一個陣列中:
categorical_features = [col for col in input.columns if input[col].dtype == 'object']
有沒有一種簡單的方法來獲取這些列的索引,從原始輸入資料幀到一個串列,比如我手動構建的這個?
c = [1,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20,21,22,23,24,25,28,29,
30,31,38,39,40,41,42,43,44,45,50,51,55,56]
uj5u.com熱心網友回復:
我認為你需要select.dtypes并且enumerate
df = pd.DataFrame({'A' : ['A', 'B', 'C'], 'B' : [1,2,3], 'C' : [1, '2', '3']})
print(df)
A B C
0 A 1 1
1 B 2 2
2 C 3 3
idx_cols = [idx for idx, col in enumerate(df.select_dtypes('object').columns) ]
[0, 1]
uj5u.com熱心網友回復:
enumerate可以提供幫助:
categorical_features_indexes = [i for i, col in enumerate(input.columns) if input[col].dtype == 'object']
uj5u.com熱心網友回復:
使用df.select_dtypes df.columns.get_indexer:
categorical_features = df.columns.get_indexer(df.select_dtypes('object').columns)
df.select_dtypesdf回傳僅包含指定 dtype(s) 列的副本(您可以指定多個,例如df.select_dtypes(['object', 'int']))。df.columns.get_indexer回傳指定列的索引。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/443058.html
