Python xử lý dữ liệu trùng lặp như thế nào?

gấu trúc. Khung dữ liệu. phương thức sao chép [] được sử dụng để tìm các hàng trùng lặp trong DataFrame. Nó trả về một chuỗi boolean xác định xem một hàng trùng lặp hay duy nhất

Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng phương pháp này để xác định các hàng trùng lặp trong DataFrame. Bạn cũng sẽ biết một số mẹo thiết thực để sử dụng phương pháp này

Tạo một khung dữ liệu

# Create a DataFrame
import pandas as pd
data_df = {'Name': ['Arpit', 'Riya', 'Priyanka', 'Aman', 'Arpit', 'Rohan', 'Riya', 'Sakshi'],

           'Employment Type': ['Full-time Employee', 'Part-time Employee', 'Intern', 'Intern',
                               'Full-time Employee', 'Part-time Employee', 'Part-time Employee', 'Full-time Employee'],

           'Department': ['Administration', 'Marketing', 'Technical', 'Marketing',
                          'Administration', 'Technical', 'Marketing', 'Administration']}

df = pd.DataFrame[data_df]
df

Cũng đọc. tạo và tải DataFrames

gấu trúc. Khung dữ liệu. trùng lặp[]

  • cú pháp. gấu trúc. Khung dữ liệu. trùng lặp[subset=None, keep= ‘first’]Mục đích. Để xác định các hàng trùng lặp trong DataFrame
  • Thông số
    • tập hợp con. [vỡ nợ. Không có]. Nó được sử dụng để chỉ định các cột cụ thể trong đó các giá trị trùng lặp sẽ được tìm kiếm
    • giữ cho. 'đầu tiên' hoặc 'cuối cùng' hoặc Sai [mặc định. 'đầu tiên']. Nó được sử dụng để chỉ định phiên bản nào của các hàng lặp lại sẽ được xác định là một hàng duy nhất
  • trả lại. Một chuỗi Boolean trong đó giá trị True biểu thị rằng hàng tại chỉ mục tương ứng là trùng lặp và Sai biểu thị rằng hàng là duy nhất

Sử dụng Khung dữ liệu. chức năng trùng lặp []

Khi bạn trực tiếp sử dụng hàm

0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool
6, các giá trị mặc định sẽ được chuyển đến các tham số để tìm kiếm các hàng trùng lặp trong DataFrame

# Use the DataFrame.duplicated[] method to return a series of boolean values
bool_series = df.duplicated[]
0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool

Sử dụng tham số giữ

Bạn có thể sử dụng tham số keep để chỉ định trường hợp lặp lại nào sẽ được coi là duy nhất và các trường hợp còn lại sẽ được coi là trùng lặp

Đặt giữ là 'đầu tiên'

Giá trị mặc định của tham số giữ là 'đầu tiên'. Điều đó có nghĩa là phương thức sẽ coi phiên bản đầu tiên của một hàng là duy nhất và các phiên bản còn lại là trùng lặp

Hãy thử loại bỏ các hàng trùng lặp

# Use the keep parameter to consider only the first instance of a duplicate row to be unique
bool_series = df.duplicated[keep='first']
print['Boolean series:']
print[bool_series]
print['\n']
print['DataFrame after keeping only the first instance of the duplicate rows:']

# The `~` sign is used for negation. It changes the boolean value True to False and False to True.

df[~bool_series]
Boolean series:
0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool


DataFrame after keeping only the first instance of the duplicate rows:

Như bạn có thể thấy, hàng thứ năm và hàng thứ bảy đã được xác định là hàng trùng lặp. Hàng thứ năm là một bản sao của hàng đầu tiên và hàng thứ bảy là một bản sao của hàng thứ hai. Do đó, chúng đã bị xóa khỏi DataFrame

 

 

Đặt giữ là 'cuối cùng'

Khi bạn đặt giá trị của tham số này là 'cuối cùng', phương thức sẽ coi phiên bản cuối cùng của một hàng là duy nhất và các phiên bản còn lại là trùng lặp

Hãy thử loại bỏ các hàng trùng lặp

# Use the keep parameter to consider only the last instance of a duplicate row to be unique
bool_series = df.duplicated[keep='last']
print['Boolean series:']
print[bool_series]
print['\n']
print['DataFrame after keeping only the last instance of the duplicate rows:']

# The `~` sign is used for negation. It changes the boolean value True to False and False to True
df[~bool_series]
Boolean series:
0     True
1     True
2    False
3    False
4    False
5    False
6    False
7    False
dtype: bool


DataFrame after keeping only the last instance of the duplicate rows:

Ở đây, hàng thứ nhất và thứ hai được xác định là trùng lặp trong khi hàng thứ năm và thứ bảy được coi là duy nhất.

Đặt giữ là Sai

Nếu bạn đặt giá trị của keep là giá trị boolean Sai, thì phương thức sẽ coi tất cả các trường hợp của một hàng là trùng lặp

Hãy thử loại bỏ các hàng trùng lặp

Chương trình nhà khoa học dữ liệu công nghiệp MLPlus

Bạn đang đấu tranh để tìm một con đường có cấu trúc tốt cho Khoa học dữ liệu?

Xây dựng sự nghiệp khoa học dữ liệu của bạn với bằng cấp được ngành công nhận trên toàn cầu. Giải quyết các dự án với dữ liệu thực của công ty và trở thành Nhà khoa học dữ liệu được chứng nhận trong vòng chưa đầy 12 tháng và nhận được Vị trí đảm bảo.

Nhấn để biết thêm

Nhận khóa học Python hoàn chỉnh miễn phí

Xây dựng sự nghiệp khoa học dữ liệu của bạn với bằng cấp được ngành công nhận trên toàn cầu. Có được tư duy, sự tự tin và các kỹ năng khiến Nhà khoa học dữ liệu trở nên có giá trị

# Use the keep parameter to consider all instances of a row to be duplicates
bool_series = df.duplicated[keep=False]
print['Boolean series:']
print[bool_series]
print['\n']
print['DataFrame after removing all the instances of the duplicate rows:']
# The `~` sign is used for negation. It changes the boolean value True to False and False to True
df[~bool_series]
Boolean series:
0     True
1     True
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool


DataFrame after removing all the instances of the duplicate rows:

Sử dụng tham số tập hợp con

Tham số tập hợp con được sử dụng để chỉ định các cột trong đó các bản sao sẽ được tìm kiếm
Sau khi bạn đã chỉ định các cột, phương thức sẽ tìm kiếm các hàng trùng lặp bằng cách so sánh các giá trị của chỉ các cột được chỉ định giữa các hàng

Điều này cực kỳ hữu ích vì bạn có thể chỉ quan tâm đến việc tìm các giá trị trùng lặp cho chỉ một vài cột

# Use the subset parameter to search for duplicate values only in the Name column of the DataFrame

bool_series = df.duplicated[subset='Name']

print['Boolean series:']
print[bool_series]
print['\n']
print['DataFrame after removing duplicates found in the Name column:']
df[~bool_series]
# Use the DataFrame.duplicated[] method to return a series of boolean values
bool_series = df.duplicated[]
0

Mẹo thiết thực

  1. Nếu bạn không sử dụng tham số tập hợp con, thì tất cả các giá trị trong các hàng cần phải giống nhau để được xác định là trùng lặp
  2. Bạn cũng có thể chuyển nhiều cột vào tham số tập hợp con. Tuy nhiên, hãy nhớ rằng, tất cả các giá trị của các cột được chỉ định phải giống nhau trong các hàng để coi chúng là trùng lặp
# Use the DataFrame.duplicated[] method to return a series of boolean values
bool_series = df.duplicated[]
1
# Use the DataFrame.duplicated[] method to return a series of boolean values
bool_series = df.duplicated[]
2
  • Mặc dù phương thức này trả về một chuỗi chỉ xác định các hàng trùng lặp trong DataFrame, nhưng bạn có thể sử dụng chuỗi này để tập hợp con DataFrame sao cho nó chỉ chứa các giá trị duy nhất.

Kiểm tra kiến ​​thức của bạn

Q1. Giá trị Sai cho tham số giữ được sử dụng để xóa tất cả các hàng trùng lặp khỏi Khung dữ liệu. Đúng hay sai?

Câu trả lời

Câu trả lời. Sai. Giá trị Sai xác định tất cả các trường hợp của một hàng trùng lặp nhưng nó không loại bỏ chúng

quý 2. Các hàng trùng lặp được xác định như thế nào khi nhiều cột được chuyển đến tham số tập hợp con?

Câu trả lời

Câu trả lời. Khi nhiều cột được chuyển đến tham số tập hợp con, phương thức sẽ chỉ coi một hàng là trùng lặp nếu giá trị của tất cả các cột được chỉ định trong hàng đó khớp với giá trị của các cột được chỉ định trong hàng khác

Q3. Viết mã để xóa tất cả các phiên bản của các hàng trùng lặp khỏi DataFrame df ngoài phiên bản đầu tiên của các hàng

Câu trả lời

Câu trả lời

0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool
7

0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool
8

Q4. Viết mã để xóa tất cả các phiên bản của các hàng trùng lặp khỏi DataFrame df ngoài phiên bản cuối cùng của các hàng

Câu trả lời

Câu trả lời

0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool
9

0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool
8

Q5. Viết mã để tìm kiếm các giá trị trùng lặp trong các cột col_1 và col_2 trong DataFrame df

Câu trả lời

Câu trả lời.

# Use the keep parameter to consider only the first instance of a duplicate row to be unique
bool_series = df.duplicated[keep='first']
print['Boolean series:']
print[bool_series]
print['\n']
print['DataFrame after keeping only the first instance of the duplicate rows:']

# The `~` sign is used for negation. It changes the boolean value True to False and False to True.

df[~bool_series]
1

Bài viết được đóng góp bởi Shreyansh B và Shri Varsheni

Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng phương pháp này để xác định các hàng trùng lặp trong DataFrame. Bạn cũng sẽ biết một số mẹo thiết thực để sử dụng phương pháp này

Tạo một khung dữ liệu

# Create a DataFrame
import pandas as pd
data_df = {'Name': ['Arpit', 'Riya', 'Priyanka', 'Aman', 'Arpit', 'Rohan', 'Riya', 'Sakshi'],

           'Employment Type': ['Full-time Employee', 'Part-time Employee', 'Intern', 'Intern',
                               'Full-time Employee', 'Part-time Employee', 'Part-time Employee', 'Full-time Employee'],

           'Department': ['Administration', 'Marketing', 'Technical', 'Marketing',
                          'Administration', 'Technical', 'Marketing', 'Administration']}

df = pd.DataFrame[data_df]
df

Cũng đọc. tạo và tải DataFrames.

gấu trúc. Khung dữ liệu. trùng lặp[]

  • cú pháp. gấu trúc. Khung dữ liệu. trùng lặp[subset=None, keep= ‘first’]Mục đích. Để xác định các hàng trùng lặp trong DataFrame
  • Thông số
    • tập hợp con. [vỡ nợ. Không có]. Nó được sử dụng để chỉ định các cột cụ thể trong đó các giá trị trùng lặp sẽ được tìm kiếm
    • giữ cho. 'đầu tiên' hoặc 'cuối cùng' hoặc Sai [mặc định. 'đầu tiên']. Nó được sử dụng để chỉ định phiên bản nào của các hàng lặp lại sẽ được xác định là một hàng duy nhất
  • trả lại. Một chuỗi Boolean trong đó giá trị True biểu thị rằng hàng tại chỉ mục tương ứng là trùng lặp và Sai biểu thị rằng hàng là duy nhất

Sử dụng Khung dữ liệu. chức năng trùng lặp []

Khi bạn trực tiếp sử dụng hàm

0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool
6, các giá trị mặc định sẽ được chuyển đến các tham số để tìm kiếm các hàng trùng lặp trong DataFrame

# Use the DataFrame.duplicated[] method to return a series of boolean values
bool_series = df.duplicated[]
0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool

Sử dụng tham số giữ

Bạn có thể sử dụng tham số keep để chỉ định trường hợp lặp lại nào sẽ được coi là duy nhất và các trường hợp còn lại sẽ được coi là trùng lặp

Đặt giữ là 'đầu tiên'

Giá trị mặc định của tham số giữ là 'đầu tiên'. Điều đó có nghĩa là phương thức sẽ coi phiên bản đầu tiên của một hàng là duy nhất và các phiên bản còn lại là trùng lặp

Hãy thử loại bỏ các hàng trùng lặp

# Use the keep parameter to consider only the first instance of a duplicate row to be unique
bool_series = df.duplicated[keep='first']
print['Boolean series:']
print[bool_series]
print['\n']
print['DataFrame after keeping only the first instance of the duplicate rows:']

# The `~` sign is used for negation. It changes the boolean value True to False and False to True.

df[~bool_series]
Boolean series:
0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool


DataFrame after keeping only the first instance of the duplicate rows:

Như bạn có thể thấy, hàng thứ năm và hàng thứ bảy đã được xác định là hàng trùng lặp. Hàng thứ năm là một bản sao của hàng đầu tiên và hàng thứ bảy là một bản sao của hàng thứ hai. Do đó, chúng đã bị xóa khỏi DataFrame

 

 

Đặt giữ là 'cuối cùng'

Khi bạn đặt giá trị của tham số này là 'cuối cùng', phương thức sẽ coi phiên bản cuối cùng của một hàng là duy nhất và các phiên bản còn lại là trùng lặp

Hãy thử loại bỏ các hàng trùng lặp

# Use the keep parameter to consider only the last instance of a duplicate row to be unique
bool_series = df.duplicated[keep='last']
print['Boolean series:']
print[bool_series]
print['\n']
print['DataFrame after keeping only the last instance of the duplicate rows:']

# The `~` sign is used for negation. It changes the boolean value True to False and False to True
df[~bool_series]
Boolean series:
0     True
1     True
2    False
3    False
4    False
5    False
6    False
7    False
dtype: bool


DataFrame after keeping only the last instance of the duplicate rows:

Ở đây, hàng thứ nhất và thứ hai được xác định là trùng lặp trong khi hàng thứ năm và thứ bảy được coi là duy nhất.

Đặt giữ là Sai

Nếu bạn đặt giá trị của keep là giá trị boolean Sai, thì phương thức sẽ coi tất cả các trường hợp của một hàng là trùng lặp

Hãy thử loại bỏ các hàng trùng lặp

# Use the keep parameter to consider all instances of a row to be duplicates
bool_series = df.duplicated[keep=False]
print['Boolean series:']
print[bool_series]
print['\n']
print['DataFrame after removing all the instances of the duplicate rows:']
# The `~` sign is used for negation. It changes the boolean value True to False and False to True
df[~bool_series]
Boolean series:
0     True
1     True
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool


DataFrame after removing all the instances of the duplicate rows:

Sử dụng tham số tập hợp con

Tham số tập hợp con được sử dụng để chỉ định các cột trong đó các bản sao sẽ được tìm kiếm
Sau khi bạn đã chỉ định các cột, phương thức sẽ tìm kiếm các hàng trùng lặp bằng cách so sánh các giá trị của chỉ các cột được chỉ định giữa các hàng

Điều này cực kỳ hữu ích vì bạn có thể chỉ quan tâm đến việc tìm các giá trị trùng lặp cho chỉ một vài cột

# Use the subset parameter to search for duplicate values only in the Name column of the DataFrame

bool_series = df.duplicated[subset='Name']

print['Boolean series:']
print[bool_series]
print['\n']
print['DataFrame after removing duplicates found in the Name column:']
df[~bool_series]
# Use the DataFrame.duplicated[] method to return a series of boolean values
bool_series = df.duplicated[]
0

Mẹo thiết thực

  1. Nếu bạn không sử dụng tham số tập hợp con, thì tất cả các giá trị trong các hàng cần phải giống nhau để được xác định là trùng lặp
  2. Bạn cũng có thể chuyển nhiều cột vào tham số tập hợp con. Tuy nhiên, hãy nhớ rằng, tất cả các giá trị của các cột được chỉ định phải giống nhau trong các hàng để coi chúng là trùng lặp
# Use the DataFrame.duplicated[] method to return a series of boolean values
bool_series = df.duplicated[]
1
# Use the DataFrame.duplicated[] method to return a series of boolean values
bool_series = df.duplicated[]
2
  • Mặc dù phương thức này trả về một chuỗi chỉ xác định các hàng trùng lặp trong DataFrame, nhưng bạn có thể sử dụng chuỗi này để tập hợp con DataFrame sao cho nó chỉ chứa các giá trị duy nhất.

Kiểm tra kiến ​​thức của bạn

Q1. Giá trị Sai cho tham số giữ được sử dụng để xóa tất cả các hàng trùng lặp khỏi Khung dữ liệu. Đúng hay sai?

Câu trả lời

Câu trả lời. Sai. Giá trị Sai xác định tất cả các trường hợp của một hàng trùng lặp nhưng nó không loại bỏ chúng

quý 2. Các hàng trùng lặp được xác định như thế nào khi nhiều cột được chuyển đến tham số tập hợp con?

Câu trả lời

Câu trả lời. Khi nhiều cột được chuyển đến tham số tập hợp con, phương thức sẽ chỉ coi một hàng là trùng lặp nếu giá trị của tất cả các cột được chỉ định trong hàng đó khớp với giá trị của các cột được chỉ định trong hàng khác

Q3. Viết mã để xóa tất cả các phiên bản của các hàng trùng lặp khỏi DataFrame df ngoài phiên bản đầu tiên của các hàng

Câu trả lời

Câu trả lời

0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool
7

0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool
8

Q4. Viết mã để xóa tất cả các phiên bản của các hàng trùng lặp khỏi DataFrame df ngoài phiên bản cuối cùng của các hàng

Câu trả lời

Câu trả lời

0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool
9

0    False
1    False
2    False
3    False
4     True
5    False
6     True
7    False
dtype: bool
8

Q5. Viết mã để tìm kiếm các giá trị trùng lặp trong các cột col_1 và col_2 trong DataFrame df

Câu trả lời

Câu trả lời.

# Use the keep parameter to consider only the first instance of a duplicate row to be unique
bool_series = df.duplicated[keep='first']
print['Boolean series:']
print[bool_series]
print['\n']
print['DataFrame after keeping only the first instance of the duplicate rows:']

# The `~` sign is used for negation. It changes the boolean value True to False and False to True.

df[~bool_series]
1

Bài viết được đóng góp bởi Shreyansh B và Shri Varsheni

MáyHọcPlus

Machine Learning Plus được tạo thành từ một nhóm những người nhiệt tình đam mê Khoa học dữ liệu. Họ giúp các Nhà phát triển, Nhà quản lý doanh nghiệp và Nhà khoa học dữ liệu tuyệt vời trở nên giỏi hơn trong công việc của họ

Làm cách nào để xóa các bản sao khỏi DataFrame trong Python dựa trên cột?

Để xóa các cột trùng lặp khỏi DataFrame của gấu trúc, hãy sử dụng df. T. drop_duplicates[] . T , thao tác này sẽ xóa tất cả các cột có cùng dữ liệu bất kể tên cột.

Danh sách có thể trùng lặp trong Python không?

Danh sách Python có thể chứa các phần tử trùng lặp .

Phương pháp chính xác để khám phá nếu một hàng trùng lặp là gì?

Tìm hàng trùng lặp . Kết quả là một Sê-ri boolean có giá trị True biểu thị trùng lặp. Nói cách khác, giá trị True có nghĩa là mục này giống với mục trước đó. duplicated[] method on the column. The result is a boolean Series with the value True denoting duplicate. In other words, the value True means the entry is identical to a previous one.

Chủ Đề