Как получить уникальные значения из нескольких столбцов в группе пандPython

Программы на Python
Ответить
Anonymous
 Как получить уникальные значения из нескольких столбцов в группе панд

Сообщение Anonymous »

Начиная с этого кадра данных df:

df = pd.DataFrame({'c':[1,1,1,2,2,2],'l1':['a','a','b','c','c','b'],'l2':['b','d','d','f','e','f']})

c l1 l2
0 1 a b
1 1 a d
2 1 b d
3 2 c f
4 2 c e
5 2 b f


Я хотел бы выполнить группировку по столбцу c, чтобы получить уникальные значения столбцов l1 и l2. Для одного столбца я могу сделать:

g = df.groupby('c')['l1'].unique()


который правильно возвращает:

c
1 [a, b]
2 [c, b]
Name: l1, dtype: object


но используя:

g = df.groupby('c')['l1','l2'].unique()


возвращает:

AttributeError: 'DataFrameGroupBy' object has no attribute 'unique'


Я знаю, что могу получить уникальные значения для двух столбцов с помощью (среди прочего):

In [12]: np.unique(df[['l1','l2']])
Out[12]: array(['a', 'b', 'c', 'd', 'e', 'f'], dtype=object)


Есть ли способ применить этот метод к groupby, чтобы получить что-то вроде:

c
1 [a, b, d]
2 [c, b, e, f]
Name: l1, dtype: object


Подробнее здесь: https://stackoverflow.com/questions/361 ... as-groupby
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»