Удаление элементов из оси
Удалить один или несколько элементов из оси просто, если имеется индексный массив или список, не содержащий этих значений. Метод drop возвращает новый объект, в котором указанные значения удалены из оси:
In [105]: obj = pd.Series(np.arange(5.), index=['a', 'b', 'c', 'd', 'e'])
In [106]: obj
Out[106]:
a 0.0
b 1.0
c 2.0
d 3.0
e 4.0
dtype: float64
In [107]: new_obj = obj.drop('c')
In [108]: new_obj
Out[108]:
a 0.0
b 1.0
d 3.0
e 4.0
dtype: float64
In [109]: obj.drop(['d', 'c'])
Out[109]:
a 0.0
b 1.0
e 4.0
dtype: float64
В случае DataFrame указанные в индексе значения можно удалить из любой оси. Для иллюстрации сначала создадим объект DataFrame:
In [110]: data = pd.DataFrame(np.arange(16).reshape((4, 4)),
.....: index=['Ohio', 'Colorado', 'Utah', 'New York'],
.....: columns=['one', 'two', 'three', 'four'])
In [111]: data
Out[111]:
one two three four
Ohio 0 1 2 3
Colorado 4 5 6 7
Utah 8 9 10 11
New York 12 13 14 15
Если вызвать drop, указав последовательность меток, то будут удалены строки с такими метками (ось 0):
In [112]: data.drop(['Colorado', 'Ohio'])
Out[112]:
one two three four
Utah 8 9 10 11
New York 12 13 14 15
Чтобы удалить столбцы, следует передать axis=1 или axis='columns':
In [113]: data.drop('two', axis=1)
Out[113]:
one three four
Ohio 0 2 3
Colorado 4 6 7
Utah 8 10 11
New York 12 14 15
In [114]: data.drop(['two', 'four'], axis='columns')
Out[114]:
one three
Ohio 0 2
Colorado 4 6
Utah 8 10
New York 12 14
Многие функции, подобные drop, которые модифицируют размер или форму Series или DataFrame, могут изменять объект на месте, не создавая новый объект:
In [115]: obj.drop('c', inplace=True)
In [116]: obj
Out[116]:
a 0.0
b 1.0
d 3.0
e 4.0
dtype: float64
Будьте осторожны с режимом inplace, поскольку все удаленные в нем данные уничтожаются.
Достарыңызбен бөлісу: |