Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mendedahkan kaedah penduaan data yang cekap dalam Pandas: Petua untuk mengalih keluar data pendua dengan cepat

Mendedahkan kaedah penduaan data yang cekap dalam Pandas: Petua untuk mengalih keluar data pendua dengan cepat

王林
王林asal
2024-01-24 08:12:061406semak imbas

Mendedahkan kaedah penduaan data yang cekap dalam Pandas: Petua untuk mengalih keluar data pendua dengan cepat

Kaedah penyahduplikasian Panda didedahkan: kaedah penyahduplikasian data yang pantas dan cekap memerlukan contoh kod khusus

Dalam proses analisis dan pemprosesan data, pertindihan dalam data sering ditemui. Data pendua mungkin mengelirukan keputusan analisis, jadi penduaan adalah langkah yang sangat penting. Pandas, pustaka pemprosesan data yang berkuasa, menyediakan pelbagai kaedah untuk mencapai penyahduplikasian data Artikel ini akan memperkenalkan beberapa kaedah penyahduplikasian yang biasa digunakan, dan melampirkan contoh kod tertentu.

  1. Berdasarkan penduaan lajur tunggal

Situasi yang paling biasa ialah menyahganda berdasarkan sama ada nilai lajur tertentu diulang. Dalam Pandas, anda boleh menggunakan kaedah .duplicated() untuk menentukan sama ada nilai lajur diduplikasi, dan kemudian gunakan kaedah .drop_duplicates() untuk mengalih keluar nilai pendua. .duplicated()方法来判断某一列的值是否重复,然后使用.drop_duplicates()方法来去除重复值。

例如,我们有一个包含了学生信息的DataFrame,其中有一个列是学生的学号,我们希望根据学号去除重复的行:

import pandas as pd

data = {'学号': [1001, 1002, 1003, 1002, 1004, 1003],
        '姓名': ['张三', '李四', '王五', '李四', '赵六', '王五'],
        '年龄': [18, 19, 20, 19, 21, 20]}

df = pd.DataFrame(data)

df.drop_duplicates(subset='学号', inplace=True)
print(df)

运行结果:

    学号  姓名  年龄
0  1001  张三  18
1  1002  李四  19
2  1003  王五  20
4  1004  赵六  21

这样就去除了学号重复的行,只保留了第一次出现的行。

  1. 基于多列去重

有时候我们需要根据多个列的值是否重复来进行去重。在.drop_duplicates()方法中可以通过subset参数指定要根据哪些列进行去重。

例如,我们还是使用上面的学生信息的DataFrame,现在根据学号和姓名去除重复的行:

import pandas as pd

data = {'学号': [1001, 1002, 1003, 1002, 1004, 1003],
        '姓名': ['张三', '李四', '王五', '李四', '赵六', '王五'],
        '年龄': [18, 19, 20, 19, 21, 20]}

df = pd.DataFrame(data)

df.drop_duplicates(subset=['学号', '姓名'], inplace=True)
print(df)

运行结果:

    学号  姓名  年龄
0  1001  张三  18
1  1002  李四  19
2  1003  王五  20
4  1004  赵六  21

这样就根据学号和姓名同时去除了重复的行。

  1. 基于所有列去重

有时候我们希望根据整个DataFrame的所有列的值是否重复来进行去重。可以使用.duplicated()方法的keep参数设置为False,则会标记所有重复的行。然后使用.drop_duplicates()

Sebagai contoh, kami mempunyai DataFrame yang mengandungi maklumat pelajar, dan salah satu lajur ialah nombor pelajar Kami berharap dapat mengalih keluar baris pendua berdasarkan nombor pelajar:

import pandas as pd

data = {'学号': [1001, 1002, 1003, 1002, 1004, 1003],
        '姓名': ['张三', '李四', '王五', '李四', '赵六', '王五'],
        '年龄': [18, 19, 20, 19, 21, 20]}

df = pd.DataFrame(data)

df.drop_duplicates(keep=False, inplace=True)
print(df)

Hasil berjalan:

    学号  姓名  年龄
0  1001  张三  18
4  1004  赵六  21

Ini menghapuskan nombor pelajar pendua. daripada baris, hanya kejadian pertama baris itu dikekalkan.

    Penyahduplikasi berdasarkan berbilang lajur

    Kadangkala kita perlu menyahduplikasi berdasarkan sama ada nilai ​​​​bagi berbilang lajur diulang. Dalam kaedah .drop_duplicates(), anda boleh menggunakan parameter subset untuk menentukan lajur yang harus digunakan untuk penyahduaan.

    Sebagai contoh, kami masih menggunakan DataFrame maklumat pelajar di atas, dan kini mengalih keluar baris pendua berdasarkan ID dan nama pelajar:

    rrreee🎜Hasil jalankan: 🎜rrreee🎜Dengan cara ini, baris pendua dialih keluar berdasarkan ID dan nama pelajar pada masa yang sama. 🎜
      🎜Penyahduplikasi berdasarkan semua lajur🎜🎜🎜Kadangkala kami ingin menyahduplikasi berdasarkan sama ada nilai semua lajur dalam keseluruhan DataFrame diulang. Anda boleh menggunakan kaedah .duplicated() untuk menetapkan parameter keep kepada False dan semua baris pendua akan ditanda. Kemudian gunakan kaedah .drop_duplicates() untuk mengalih keluar baris pendua ini. 🎜🎜Sebagai contoh, kami masih menggunakan DataFrame maklumat pelajar di atas, dan kini mengalih keluar baris pendua berdasarkan semua lajur keseluruhan DataFrame: 🎜rrreee🎜Hasil jalankan: 🎜rrreee🎜Dengan cara ini, semua baris pendua dalam keseluruhan DataFrame dialih keluar . 🎜🎜Ringkasan: 🎜🎜Artikel ini memperkenalkan tiga kaedah penyahduplikasian yang biasa digunakan dalam Panda: penyahduplikasian berdasarkan satu lajur, penyahduplikasian berdasarkan berbilang lajur dan penyahduplikasian berdasarkan semua lajur. Pilih kaedah yang sesuai mengikut keperluan sebenar untuk membuang data pendua dengan cepat dan cekap. Dalam aplikasi praktikal, kaedah ini boleh digunakan secara fleksibel mengikut data tertentu dan keperluan untuk meningkatkan kecekapan pemprosesan dan analisis data. 🎜🎜Di atas adalah keseluruhan kandungan artikel ini, saya harap pembaca dapat memanfaatkannya dan dapat menggunakan Panda dengan lebih baik untuk deduplikasi data. 🎜

Atas ialah kandungan terperinci Mendedahkan kaedah penduaan data yang cekap dalam Pandas: Petua untuk mengalih keluar data pendua dengan cepat. 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