Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memadam Baris dengan Cekap dari Bingkai Data Pandas Berdasarkan Nilai Lajur?

Bagaimana untuk Memadam Baris dengan Cekap dari Bingkai Data Pandas Berdasarkan Nilai Lajur?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-18 14:06:10430semak imbas

How to Efficiently Delete Rows from a Pandas DataFrame Based on a Column Value?

Memadamkan Baris DataFrame dalam Panda Berdasarkan Nilai Lajur

Masalah:

Pertimbangkan Pandas DataFrame dengan lajur bernama line_race . Tugasnya ialah untuk mengalih keluar semua baris yang nilai dalam lajur line_race adalah sama dengan 0.

Penyelesaian Cekap:

Untuk mengalih keluar baris dengan cekap berdasarkan nilai lajur tertentu , gunakan langkah berikut:

  1. Import Panda perpustakaan:

    import pandas as pd
  2. Buat DataFrame dengan data yang diberikan:

    data = {
        "line_race": [11, 11, 9, 10, 10, 9, 8, 9, 11, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        "rating": [56, 67, 66, 83, 88, 52, 66, 70, 68, 72, 65, 70, 64, 70, 70, -1, -1, -1, -1, -1, 69, -1, -1, -1, -1],
        "rw": [1.000000, 1.000000, 1.000000, 0.880678, 0.793033, 0.636655, 0.581946, 0.518825, 0.486226, 0.446667, 0.164591, 0.142409, 0.134800, 0.117803, 0.113758, 0.109852, 0.098919, 0.093168, 0.083063, 0.075171, 0.048690, 0.045404, 0.039679, 0.034160, 0.030915],
        "wrating": [56.000000, 67.000000, 66.000000, 73.096278, 69.786942, 33.106077, 38.408408, 36.317752, 33.063381, 32.160051, 10.698423, 9.968634, 8.627219, 8.246238, 7.963072, -0.109852, -0.098919, -0.093168, -0.083063, -0.075171, 3.359623, -0.045404, -0.039679, -0.034160, -0.030915],
        "line_date": ["2007-03-31", "2007-03-10", "2007-02-10", "2007-01-13", "2006-12-23", "2006-11-09", "2006-10-22", "2006-09-29", "2006-09-16", "2006-08-30", "2006-02-11", "2006-01-13", "2006-01-02", "2005-12-06", "2005-11-29", "2005-11-22", "2005-11-01", "2005-10-20", "2005-09-27", "2005-09-07", "2005-06-12", "2005-05-29", "2005-05-02", "2005-04-02", "2005-03-13", "2004-11-09"]
    }
    
    df = pd.DataFrame(data)
  3. Tapis DataFrame menggunakan kaedah query(), yang lebih pantas daripada menggunakan boolean pengindeksan:

    df_filtered = df.query("line_race != 0")
  4. Sebagai alternatif, anda boleh menggunakan kaedah drop() dengan parameter inplace ditetapkan kepada True:

    df.drop(df.index[df['line_race'] == 0], inplace=True)
  5. DataFrame yang ditapis kemudiannya boleh ditugaskan kepada pembolehubah DataFrame asal atau diperuntukkan kepada pembolehubah baharu pembolehubah.

DataFrame yang dikemas kini tidak lagi akan mengandungi baris dengan lajur line_race bersamaan dengan 0.

Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris dengan Cekap dari Bingkai Data Pandas Berdasarkan Nilai Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn