Я пытался найти ответ на этот вопрос, но не смог его найти ... так что вот так.
У меня есть набор данных с 23987 столбцами. Я на самом деле хочу только информацию в 35 из этих столбцов (достаточно разбросаны по ним). Я поместил эти 35 пунктов в список. Я хотел знать, есть ли быстрый способ отбросить все столбцы, кроме тех, которые пропустили список
Я попробовал это:
df1.drop(df1.columns.difference([ALTJ_genes]), axis=1, inplace=True)
ALTJ_genes - список с 35 предметов. Я получаю ошибку:
TypeError: unhashable type: 'list'
Мне было интересно, есть ли способ сделать это, я знаю, что могу достичь своей цели, пропустив отдельные столбцы, но я хочу знать, возможно ли с помощью списка , Это сделало бы код намного понятнее.
В любом случае, спасибо!
РЕДАКТИРОВАТЬ: Я предоставляю некоторые скриншоты, может быть, это полезно.
![The second screenshot shows how I can select one column](https://i.stack.imgur.com/ttkTB.png)
Теперь, это полная ошибка, которую я получаю при передаче списка со всеми генами.
---------------------------------------------------------------------------
KeyError Traceback (самая последняя последний вызов) в ----> 1 df1 [ALTJ_genes]
/ opt / anaconda3 / lib / python3 .7 / site-packages / pandas / core / frame.py в getitem (self, key) 2984, если is_iterator (key): 2985 key = list (key) -> индексатор 2986 = self.lo c ._ convert_to_indexer (ключ, axis = 1, повысить_missing = True) 2987 2988 # take ( ) не принимает логические индексаторы
/ opt / anaconda3 / lib / python3 .7 / site-packages / pandas / core / indexing.py в _convert_to_indexer (self, obj, axis, is_setter, Повышение_missing) 1283 # При установке, пропущенные ключи не допускаются, даже если .lo c: 1284 kwargs = {"Повышение_выпуска": Истинно, если is_setter else Raise_missing} -> 1285 вернуть self._get_listlike_indexer (obj, axis, ** kwargs) 1 1286 остальное: 1287 попробуйте:
/ opt / anaconda3 / lib / python3 .7 / site-packages / pandas / core / indexing.py в _get_listlike_indexer ( self, key, axis, Повышение_missing) 1090 1091 self._validate_read_indexer (-> 1092 keyarr, indexer, o._get_axis_number (axis), lift_missing = Повышение_missing 1093) 1094 return keyarr, indexer
/ opt / anaconda3 / lib /python3.7/site-packages/pandas/core/indexing.py в _validate_read_indexer (self, key, indexer, axis, повысить_missing) 1175 повышать KeyError (1176 "Ни один из [{key}] находится в [{axis] }] ". format (-> 1177 key = key, axis = self.obj._get_axis_name (axis) 1178) 1179)
KeyError:" Ни один из [Index ([('APEX1',), ( 'ASF1A',), ('CDKN2D',), ('CIB1',), ('DNA2',), \ n ('FAAP24',), ('FANCM',), ('GEN1',), ('HRAS',), ('LIG1',), \ n ('LIG3',), ('MEN1',), ('MRE11',), ('MSH3',), ('MSH6',) , \ n ('NUDT1',), ('MTOR',), ('NABP2',), ('NTHL1',), ('PALB2',), \ n ('PARP1',), ('PARP3 ',), (' POLA1 ',), (' POLM ',), (' POLQ ',), \ n (' PRPF19 ',), (' RAD51D ',), (' RBBP8 ',), (' RRM2' ,), ('RUVBL2',), \ n ('SOD1',), ('KAT5',), ('UNG',), ('WRN',), ('XRCC1',)], \ n dtype = 'object', name = 'Gene_Name')] находятся в [столбцах] "