Python Pandas – Удаление нескольких рядов из фрейма данных одной командой

Короче … У меня есть кадр данных Python Pandas, который считывается из файла Excel с помощью «read_table». Я хотел бы сохранить горстку серии из данных и очистить остальные. Я знаю, что могу просто удалить то, что мне не нужно по отдельности, используя «del data ['SeriesName']», но я предпочел бы указать, что сохранить, а не указывать, что нужно удалить.

Если самый простой ответ – скопировать существующий фрейм данных в новый фрейм данных, который содержит только серию, которую я хочу, а затем удалить существующий фрейм в целом, я был бы удовлетворен этим решением … но если это действительно лучший Кстати, может ли кто-нибудь пройти через меня?

ТИА … Я новичок в Пандах. 🙂

Вы можете использовать функцию DataFrame для удаления столбцов. Вы должны передать опцию axis=1 для работы с столбцами, а не с строками. Обратите внимание, что он возвращает копию, поэтому вам нужно назначить результат новому DataFrame :

 In [1]: from pandas import * In [2]: df = DataFrame(dict(x=[0,0,1,0,1], y=[1,0,1,1,0], z=[0,0,1,0,1])) In [3]: df Out[3]: xyz 0 0 1 0 1 0 0 0 2 1 1 1 3 0 1 0 4 1 0 1 In [4]: df = df.drop(['x','y'], axis=1) In [5]: df Out[5]: z 0 0 1 0 2 1 3 0 4 1 

В основном то же самое, что и ответ Желязны7 – просто указав, что сохранить:

 In [68]: df Out[68]: xyz 0 0 1 0 1 0 0 0 2 1 1 1 3 0 1 0 4 1 0 1 In [70]: df = df[['x','z']] In [71]: df Out[71]: xz 0 0 0 1 0 0 2 1 1 3 0 0 4 1 1 

*Редактировать*

Вы можете указать большое количество столбцов с помощью индексации / Dataframe.columns объект Dataframe.columns .
Этот объект type(pandas.Index) можно рассматривать как type(pandas.Index) метки столбца (с некоторыми расширенными функциями).

См. Это расширение вышеприведенных примеров:

 In [4]: df.columns Out[4]: Index([x, y, z], dtype=object) In [5]: df[df.columns[1:]] Out[5]: yz 0 1 0 1 0 0 2 1 1 3 1 0 4 0 1 In [7]: df.drop(df.columns[1:], axis=1) Out[7]: x 0 0 1 0 2 1 3 0 4 1 

Вы также можете указать список столбцов, чтобы сохранить параметр usecols в pandas.read_table . Это ускоряет процесс загрузки.