Начиная с этим dataframe ДФА:Как получить уникальные значения из нескольких столбцов в панде GroupBy
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
Я хотел бы выполнить GroupBy над 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
где делает 'уникальный'? Это 'pd.unique'? –
Это np.unique. По-видимому, Canopy импортирует его сам по себе, поэтому я редактирую. Благодарю. – ayhan