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

57
4

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

tz = ["us","eu","ca","de","us","eu","ca","us","eu"]
ip = ["2.3.3.1","2.3.3.1","2.3.3.1","2.3.3.1","2.3.3.1","5.3.3.1","2.3.3.1","4.3.3.1","2.3.3.1"]
val = ["2.3","2.3","2.3","2.3","2.3","2.3","2.3","2.3","2.3"]
r = pd.DataFrame({'tz':tz,'ip':ip,'val':val})
r
r.groupby(tz).describe()

Я хотел бы, чтобы мой результат был напечатан как:

ca --> 2.3.3.1
de --> 2.3.3.1
eu --> 2.3.3.1, 5.3.3.1
us --> 2.3.3.1, 4.3.3.1

спросил(а) 2016-01-13T03:55:00+03:00 4 года, 9 месяцев назад
1
Решение
71

unique работы:

>>> u = r.groupby(tz)['ip'].unique()
>>> for i in u.index:
print(i, '-->', ', '.join(u[i]))

ca --> 2.3.3.1
de --> 2.3.3.1
eu --> 2.3.3.1, 5.3.3.1
us --> 2.3.3.1, 4.3.3.1

ответил(а) 2016-01-13T04:07:00+03:00 4 года, 9 месяцев назад
40

timezones = r['tz'].unique()

for timezone in timezones:
print timezone + " ---> " + ", ".join([i for i in list(r[r['tz']==timezone]['ip'].unique()])

Это будет буквально распечатывать его в соответствии с запросом... хотя должно быть прямо, чтобы адаптировать это для захвата списка и т.д.

ответил(а) 2016-01-13T04:05:00+03:00 4 года, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема