Bagaimana saya bisa mendapatkan jumlah nilai yang hilang di setiap baris dalam bingkai data Pandas. Saya ingin membagi dataframe ke berbagai dataframe yang memiliki jumlah nilai yang sama hilang di setiap baris.
Ada saran?
Anda dapat menerapkan hitungan di atas baris seperti ini:
test_df.apply(lambda x: x.count(), axis=1)
test_df:
A B C
0: 1 1 3
1: 2 nan nan
2: nan nan nan
keluaran:
0: 3
1: 1
2: 0
Anda dapat menambahkan hasilnya sebagai kolom seperti ini:
test_df['full_count'] = test_df.apply(lambda x: x.count(), axis=1)
Hasil:
A B C full_count
0: 1 1 3 3
1: 2 nan nan 1
2: nan nan nan 0
Bila menggunakan panda, mencoba untuk menghindari operasi tampil di loop, termasuk
apply
,map
,applymap
dll Itu lambat!Jika Anda ingin menghitung nilai yang hilang di setiap kolom, coba:
df.isnull().sum()
ataudf.isnull().sum(axis=0)
Di sisi lain, Anda dapat menghitung di setiap baris (yang merupakan pertanyaan Anda) dengan:
df.isnull().sum(axis=1)
Ini kira-kira 10 kali lebih cepat daripada solusi Jan van der Vegt (BTW ia menghitung nilai yang valid, bukan nilai yang hilang):
sumber
Cara penyederhanaan:
sumber
Atau, Anda bisa memanfaatkan metode info untuk objek bingkai data:
yang memberikan jumlah nilai yang bukan nol untuk setiap kolom.
sumber
nilai nol di sepanjang kolom,
nilai kosong di sepanjang kolom,
nilai nol di sepanjang baris,
nilai kosong di sepanjang baris,
sumber
Cuplikan ini akan mengembalikan nilai integer dari total jumlah kolom dengan nilai yang hilang:
sumber
sumber
Jika Anda ingin menghitung nilai yang hilang:
sumber