Saya memiliki data, di mana saya ingin menemukan jumlah NaN
, sehingga jika kurang dari beberapa ambang batas, saya akan menjatuhkan kolom ini. Saya melihat, tetapi tidak dapat menemukan fungsi untuk ini. ada value_counts
, tetapi akan lambat bagi saya, karena sebagian besar nilai berbeda dan saya hanya ingin menghitung NaN
.
463
df
df.isnull().sum().sum()
.sum(axis=0)
,, yang merupakan perilaku default. Dan untuk mendapatkan rowsum.sum(axis=1)
,.df.isnull().values.sum()
df['column_name'].isna().sum()
juga berfungsi jika ada yang bertanya-tanya.Anda bisa mengurangi total panjang dari hitungan nilai non-nan:
Anda harus mengatur waktu pada data Anda. Untuk Seri kecil mendapat kecepatan 3x dibandingkan dengan
isnull
solusinya.sumber
isnull
sudah dua kali lebih cepat karena ini.Mari kita asumsikan
df
adalah panda DataFrame.Kemudian,
Ini akan memberikan jumlah nilai NaN di setiap kolom.
Jika Anda perlu, NaN menghargai di setiap baris,
sumber
Berdasarkan jawaban yang paling banyak dipilih, kita dapat dengan mudah mendefinisikan fungsi yang memberi kita kerangka data untuk melihat pratinjau nilai yang hilang dan% dari nilai yang hilang di setiap kolom:
sumber
Sejak panda 0.14.1 saran saya di sini untuk memiliki argumen kata kunci dalam metode value_counts telah diterapkan:
sumber
jika hanya menghitung nilai nan di kolom panda di sini adalah cara cepat
sumber
jika Anda menggunakan Jupyter Notebook, Bagaimana ....
atau
atau, apakah ada di mana saja NaN dalam data, jika ya, di mana?
sumber
Di bawah ini akan mencetak semua kolom Nan dalam urutan menurun.
atau
Di bawah ini akan mencetak 15 kolom Nan pertama dalam urutan menurun.
sumber
Anda dapat menggunakan fungsi berikut, yang akan memberi Anda output dalam Dataframe
Cukup salin dan tempel fungsi berikut dan panggil dengan melewati pfr Dataframe Anda
Keluaran
Jika Anda ingin tetap sederhana maka Anda dapat menggunakan fungsi berikut untuk mendapatkan nilai yang hilang dalam%
sumber
Untuk menghitung nol:
Untuk menghitung NaN:
atau
sumber
Anda dapat menggunakan metode value_counts dan mencetak nilai np.nan
sumber
s.value_counts(dropna = False)
Silakan gunakan di bawah ini untuk jumlah kolom tertentu
sumber
Ini akan melakukan triknya.
sumber
Berikut adalah kode untuk menghitung
Null
kolom nilai bijak:sumber
Ada artikel Dzone bagus dari Juli 2017 yang merinci berbagai cara meringkas nilai-nilai NaN. Lihat di sini .
Artikel yang saya kutip memberikan nilai tambahan dengan: (1) Menampilkan cara untuk menghitung dan menampilkan jumlah NaN untuk setiap kolom sehingga orang dapat dengan mudah memutuskan apakah akan membuang kolom tersebut dan (2) Mendemonstrasikan cara untuk memilih baris di spesifik yang memiliki NaN sehingga dapat dibuang secara selektif atau diperhitungkan.
Berikut adalah contoh cepat untuk menunjukkan kegunaan dari pendekatan ini - dengan hanya beberapa kolom mungkin kegunaannya tidak jelas tetapi saya menemukan itu dapat membantu untuk kerangka data yang lebih besar.
sumber
Satu opsi sederhana lain yang belum disarankan, untuk hanya menghitung NaN, akan menambahkan dalam bentuk untuk mengembalikan jumlah baris dengan NaN.
sumber
df.isnull (). sum () akan memberikan jumlah kolom-nilai yang hilang.
Jika Anda ingin mengetahui jumlah nilai yang hilang di kolom tertentu maka kode berikut akan berfungsi df.column.isnull (). Sum ()
sumber
berdasarkan jawaban yang diberikan dan beberapa perbaikan inilah pendekatan saya
sumber
df.apply(lambda x: x.value_counts(dropna=False)[np.nan]/x.size*100)
Jika Anda perlu menghitung non-NA (non-None) dan NA (None) di semua grup berbeda yang ditarik oleh groupby:
Ini mengembalikan jumlah non-NA, NA dan jumlah total entri per grup.
sumber
Menggunakan solusi yang diusulkan oleh @sushmit dalam kode saya.
Variasi yang mungkin sama juga dapat terjadi
Keuntungan dari ini adalah bahwa ia mengembalikan hasil untuk setiap kolom di df selanjutnya.
sumber
Memberikan sebagai output:
sumber
Misalkan Anda ingin mendapatkan jumlah nilai yang hilang (NaN) dalam kolom (seri) yang dikenal sebagai harga dalam kerangka data yang disebut ulasan
Untuk mendapatkan nilai yang hilang, dengan n_missing_prices sebagai variabel, do sederhana
jumlah adalah metode utama di sini, mencoba menggunakan hitungan sebelum saya menyadari jumlah adalah metode yang tepat untuk digunakan dalam konteks ini
sumber
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.count.html#pandas.Series.count
Mengembalikan jumlah pengamatan non-NA / null dalam Seri
sumber
Untuk tugas Anda, Anda dapat menggunakan pandas.DataFrame.dropna ( https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html ):
Dengan parameter ambang Anda dapat mendeklarasikan jumlah maks untuk nilai NaN untuk semua kolom di DataFrame.
Keluaran kode:
sumber