Pandas: cara memeriksa apakah beberapa kolom sama


Anda dapat menggunakan metode berikut untuk memeriksa apakah beberapa kolom sama di panda:

Metode 1: Periksa apakah semua kolom sama

 df[' matching '] = df. eq (df. iloc [:, 0], axis= 0 ). all (1)

Metode 2: Periksa apakah kolom tertentu sama

 df[' matching '] = df. apply ( lambda x: x.col1 == x.col3 == x.col4 , axis= 1 )

Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan pandas DataFrame berikut:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' A ': [4, 0, 3, 3, 6, 8, 7],
                   ' B ': [4, 2, 3, 5, 6, 4, 7],
                   ' C ': [4, 0, 3, 3, 5, 10, 7],
                   ' D ': [4, 0, 3, 3, 3, 8, 7]})

#view DataFrame
print (df)

   ABCD
0 4 4 4 4
1 0 2 0 0
2 3 3 3 3
3 3 5 3 3
4 6 6 5 3
5 8 4 10 8
6 7 7 7 7

Contoh 1: Periksa apakah semua kolom sama

Kita dapat menggunakan sintaks berikut untuk memeriksa apakah nilai setiap kolom di DataFrame sama untuk setiap baris:

 #create new column that checks if all columns match in each row
df[' matching '] = df. eq (df. iloc [:, 0], axis= 0 ). all (1)

#view updated DataFrame
print (df)

   ABCD matching
0 4 4 4 4 True
1 0 2 0 0 False
2 3 3 3 3 True
3 3 5 3 3 False
4 6 6 5 3 False
5 8 4 10 8 False
6 7 7 7 7 True

Jika nilai setiap kolom sama, kolom terkait akan mengembalikan True .

Jika tidak, ia akan mengembalikan False .

Perhatikan bahwa Anda dapat mengonversi nilai Benar dan Salah menjadi 1 dan 0 menggunakan astype(int) sebagai berikut:

 #create new column that checks if all columns match in each row
df[' matching '] = df. eq (df. iloc [:, 0], axis= 0 ). all (1). astype (int)

#view updated DataFrame
print (df)

   ABCD matching
0 4 4 4 4 1
1 0 2 0 0 0
2 3 3 3 3 1
3 3 5 3 3 0
4 6 6 5 3 0
5 8 4 10 8 0
6 7 7 7 7 1

Contoh 2: Periksa apakah kolom tertentu sama

Kita dapat menggunakan sintaks berikut untuk memeriksa apakah nilai di kolom A, C, dan D DataFrame sama untuk setiap baris:

 #create new column that checks if values in columns A, C, and D are equal
df[' matching '] = df. apply ( lambda x: x. A == x. C == x. D , axis= 1 )

#view updated DataFrame
print (df)

   ABCD matching
0 4 4 4 4 True
1 0 2 0 0 True
2 3 3 3 3 True
3 3 5 3 3 True
4 6 6 5 3 False
5 8 4 10 8 False
6 7 7 7 7 True

Jika nilai di kolom A, C, dan D sama, kolom terkait akan mengembalikan True .

Jika tidak, ia akan mengembalikan False .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:

Cara mengganti nama kolom di Pandas
Bagaimana cara menambahkan kolom ke Pandas DataFrame
Bagaimana mengubah urutan kolom di Pandas DataFrame

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *