Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python – Xóa hàng cụ thể từ DataFrame MultiIndex

Xóa hàng cụ thể từ DataFrame có chỉ mục đa cấp (MultiIndex) bằng phương thức drop() với tuple chỉ định.

Tạo DataFrame MultiIndex

import numpy as np
import pandas as pd

arr = [
    np.array(['car', 'car', 'car', 'bike', 'bike', 'bike', 'truck', 'truck', 'truck']),
    np.array(['valueA', 'valueB', 'valueC', 'valueA', 'valueB', 'valueC', 'valueA', 'valueB', 'valueC'])
]

dataFrame = pd.DataFrame(
    np.random.randn(9, 3), index=arr, columns=['Col 1', 'Col 2', 'Col 3']
)
dataFrame.index.names = ['level 0', 'level 1']

print("DataFrame gốc:\n", dataFrame)

Xóa hàng ('car', 'valueA')

dataFrame.drop(('car', 'valueA'), axis=0, inplace=True)
print("\nSau khi xóa ('car', 'valueA'):\n", dataFrame)

Kết quả

DataFrame gốc:
                    Col 1      Col 2      Col 3
level 0 level 1
car     valueA   0.845965  -0.850953  -0.335662
        valueB   0.534764  -0.107635   1.008855
        valueC  -0.507910  -0.664625   1.671653
bike    valueA  -0.475751  -0.244113   0.672352
        valueB  -0.273670   1.118635   0.428750
        valueC  -1.064504  -0.344729   0.481037
truck   valueA  -0.508659   1.352390   1.382799
        valueB   1.144299  -0.092568  -1.071624
        valueC  -0.710767   0.967018  -0.047430

Sau khi xóa ('car', 'valueA'):
                    Col 1      Col 2      Col 3
level 0 level 1
car     valueB   0.534764  -0.107635   1.008855
        valueC  -0.507910  -0.664625   1.671653
bike    valueA  -0.475751  -0.244113   0.672352
        valueB  -0.273670   1.118635   0.428750
        valueC  -1.064504  -0.344729   0.481037
truck   valueA  -0.508659   1.352390   1.382799
        valueB   1.144299  -0.092568  -1.071624
        valueC  -0.710767   0.967018  -0.047430

Giải thích

  • MultiIndex có 2 cấp: 'level 0' (car/bike/truck) và 'level 1' (valueA/B/C).
  • drop(('car', 'valueA'), axis=0) xóa hàng có key tuple đó.
  • inplace=True sửa đổi trực tiếp DataFrame gốc.
  • Có thể xóa nhiều hàng: drop([('car','valueA'), ('bike','valueB')]).