2016-12-24 32 views
5

Tôi muốn trích xuất tất cả các kết hợp giá trị cột duy nhất Col1, Col2Col3. Hãy nói rằng đó là dataframe sau df:Cách lấy tất cả các kết hợp giá trị duy nhất của các cột cụ thể

df = 

Col1 Col2 Col3 
12  AB  13 
11  AB  13 
12  AB  13 
12  AC  14 

Câu trả lời là:

unique = 

Col1 Col2 Col3 
12  AB  13 
11  AB  13 
12  AC  14 

tôi biết làm thế nào để có được giá trị duy nhất của một cột cụ thể, ví dụ: df.Col1.unique(), tuy nhiên không chắc chắn về sự kết hợp độc đáo.

Trả lời

5

Có một phương pháp cho điều này - pandas.DataFrame.drop_duplicates:

>>> df.drop_duplicates() 
    Col1 Col2 Col3 
0 12 AB 13 
1 11 AB 13 
3 12 AC 14 

Bạn có thể làm điều đó inplace cũng như:

>>> df.drop_duplicates(inplace=True) 
>>> df 
    Col1 Col2 Col3 
0 12 AB 13 
1 11 AB 13 
3 12 AC 14 

Nếu bạn cần để có được giá trị duy nhất của cột nhất định:

>>> df[['Col2','Col3']].drop_duplicates() 
    Col2 Col3 
0 AB 13 
3 AC 14 

như @jezrael đề xuất, bạn cũng có thể xem xét sử dụngTham sốcủa drop_duplicates():

>>> df.drop_duplicates(subset=['Col2','Col3']) 
    Col1 Col2 Col3 
0 12 AB 13 
3 12 AC 14 
+0

Nếu tôi có thể có nhiều cột hơn thì sao? Tôi chỉ cần lấy giá trị duy nhất của ba cột. Nó có phải là một cái gì đó như thế này ?: 'df [[" Col1 "," Col2 "," Col3 "]]. Drop_duplicates()' – Dinosaurius

+0

có chính xác, xem cập nhật –

+1

@RomanPekar - Tôi nghĩ rằng OP muốn 'in (df.drop_duplicates (subset = ['Col1', 'Col2', 'Col3'])) ' – jezrael

Các vấn đề liên quan