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.
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
这样就去除了学号重复的行,只保留了第一次出现的行。
有时候我们需要根据多个列的值是否重复来进行去重。在.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
这样就根据学号和姓名同时去除了重复的行。
有时候我们希望根据整个DataFrame的所有列的值是否重复来进行去重。可以使用.duplicated()
方法的keep
参数设置为False
,则会标记所有重复的行。然后使用.drop_duplicates()
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)
学号 姓名 年龄 0 1001 张三 18 4 1004 赵六 21
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. 🎜.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!