DataFrame:
c_os_family_ss c_os_major_is l_customer_id_i
0 Windows 7 90418
1 Windows 7 90418
2 Windows 7 90418
Код:
print df
for name, group in df.groupby('l_customer_id_i').agg(lambda x: ','.join(x)):
print name
print group
Я пытаюсь перебрать агрегированные данные, но получаю сообщение об ошибке:
ValueError: слишком много значений для распаковки
@EdChum, вот ожидаемый результат:
c_os_family_ss \
l_customer_id_i
131572 Windows 7,Windows 7,Windows 7,Windows 7,Window...
135467 Windows 7,Windows 7,Windows 7,Windows 7,Window...
c_os_major_is
l_customer_id_i
131572 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...
135467 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...
Проблема не в выводе, я хочу перебрать каждую группу.
group
пользователюfor row, data in group.iterrows()
!Вы можете перебирать значения индекса, если ваш фрейм данных уже создан.
df = df.groupby('l_customer_id_i').agg(lambda x: ','.join(x)) for name in df.index: print name print df.loc[name]
источник