2015-09-25 2 views
5

Есть ли простой способ вывести различные комбинации значений в кадре данных? Я использовал pd.Series.unique() для одиночных столбцов, но как насчет нескольких столбцов?Значения отдельных комбинаций в Pandas DataFrames

Пример данных:

df = pd.DataFrame(data=[[1, 'a'], [2, 'a'], [3, 'b'], [3, 'b'], [1, 'b'], [1, 'b']], 
        columns=['number', 'letter']) 

Expected output: 
(1, a) 
(2, a) 
(3, b) 
(1, b) 

В идеале, я хотел бы отдельный объект серии кортежей с различными значениями.

+0

именно то, что делает вас означает сочетание? Можете ли вы объяснить на примере? –

ответ

2

Вы можете заархивировать столбцы и создать набор:

>>> set(zip(df.number, df.letter)) 
{(1, 'a'), (1, 'b'), (2, 'a'), (3, 'b')} 
5

IIUC, то вы можете установить индекс для этих столбцов, а затем вызвать unique по индексу:

In [165]: 
idx = df.set_index(['number','letter']).index 
idx.unique() 

Out[165]: 
array([(1, 'a'), (2, 'a'), (3, 'b'), (1, 'b')], dtype=object) 
+0

Что такое IIUC? – AZhao

+1

Если я правильно понимаю – EdChum

Смежные вопросы