Rumah > Artikel > pembangunan bahagian belakang > Apakah kaedah pembersihan data dalam Python?
Pustaka yang diperlukan untuk pembersihan data di sini ialah perpustakaan panda Kaedah muat turun masih berjalan di terminal: pip install panda.
Mula-mula kita perlu membaca data
import pandas as pd data = pd.read_csv(r'E:\PYthon\用户价值分析 RFM模型\data.csv') pd.set_option('display.max_columns', 888) # 大于总列数 pd.set_option('display.width', 1000) print(data.head()) print(data.info())
Baris. 3 Ia adalah untuk membaca data Terdapat panggilan fungsi baca dalam perpustakaan panda Format csv adalah yang paling cepat untuk membaca dan menulis.
Baris 4 dan 5 adalah untuk memaparkan semua lajur untuk tujuan bacaan Jika terdapat banyak lajur, pycharm akan menyembunyikan beberapa lajur tengah, jadi kami menambah dua baris kod ini untuk mengelakkannya daripada menjadi. tersembunyi.
Baris ke-6 menunjukkan pengepala jadual Kita boleh melihat medan yang ada dan nama lajur
Baris ke-7 menunjukkan maklumat asas jadual, jumlah data dalam setiap lajur dan. apakah jenis medan data. Berapa banyak data tidak kosong yang ada, jadi dalam langkah pertama kita dapat melihat lajur asas yang mempunyai nilai nol.
Selepas data.info() kita dapat melihat bahawa kebanyakan data mempunyai 541909 baris, jadi kami kira ia adalah Penerangan. Lajur ID Pelanggan tiada hasil
# 空值处理 print(data.isnull().sum()) # 空值中和,查看每一列的空值 # 空值删除 data.drop(columns=['Description'], inplace=True) print(data.info()) data.isnull()判断是否为空。data.isnumll().sum()计算空值数量。
Baris 5 memadamkan nilai nol Di sini, padamkan nilai nol lajur Penerangan terlebih dahulu bermaksud untuk mengubah suai data data tidak akan diubah suai , data cetakan masih sama seperti sebelumnya, atau pembolehubah ditakrifkan semula untuk tugasan.
Memandangkan terdapat sedikit nilai nol dalam lajur ini, lajur data ini tidak begitu penting untuk analisis data kami, jadi kami memilih untuk memadamkan keseluruhan lajur ini.
Jadual kami digunakan untuk menapis pelanggan, jadi kami menggunakan CustomerID sebagai standard untuk memadamkan lajur lain secara paksa
# CustomerID有空值 # 删除所有列的空值 data.dropna(inplace=True) # print(data.info()) print(data.isnull().sum()) # 由于CustomerID为必须字段,所以强制删除其他列,以CustomerID为准
Di sini kami mula-mula melakukan penukaran jenis pada medan lain
Penukaran jenis
# 转换为日期类型 data['InvoiceDate'] = pd.to_datetime(data['InvoiceDate']) # CustomerID 转换为整型 data['CustomerID'] = data['CustomerID'].astype('int') print(data.info())
Di atas kita berurusan dengan nilai nol, seterusnya kita berurusan dengan outlier.
Untuk melihat taburan data asas jadual, anda boleh menggunakan huraikan
print(data.describe())
untuk melihat bahawa nilai minimum dalam lajur Kuantiti data ialah -80995. Lajur ini jelas mempunyai outlier , jadi lajur ini perlu ditapis untuk outlier.
Hanya nilai yang lebih besar daripada 0 diperlukan.
data = data[data['Quantity'] > 0] print(data)
Apabila dicetak, hanya terdapat 397924 baris.
# 查看重复值 print(data[data.duplicated()])
Terdapat 5194 baris nilai pendua Nilai pendua di sini adalah pendua sepenuhnya, jadi ia adalah data yang tidak berguna dan kami boleh memadamnya.
# 删除重复值 data.drop_duplicates(inplace=True) print(data.info())
Simpan jadual asal selepas pemadaman, dan kemudian semak maklumat asas jadual
Sekarang Terdapat Tinggal 392730 keping data. Pada langkah ini, pembersihan data selesai.
Atas ialah kandungan terperinci Apakah kaedah pembersihan data dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!