группа панд с агг не работает на нескольких столбцах - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь объединить несколько столбцов, каждый в список, основанный на группе в пандах. Ниже приведен код, который я использую

grouped_df = df.groupby(['d_id', 'time']).agg({'d_name': lambda x: tuple(x)},  
{'ver': lambda x: tuple(x)},
{'f_name': lambda x: tuple(x)})

Это дает мне только первый столбец (d_name) в списке с d_id и временем в grouped_df. Два других столбца не отображаются в виде списков. Я попытался использовать list ранее, но обнаружил, что в списке есть проблема с функцией agg, поэтому я прибег к кортежу. Дайте мне знать, если я здесь что-то не так делаю.

Спасибо RafaelC за ответ на этот вопрос. Теперь я пытаюсь добавить эти столбцы списка в исходный кадр данных как grouped_df. Когда я вижу столбцы в grouped_df, они выглядят как

Index([u'ver', u'f_name', u'd_name'], dtype='object')

Но когда я делаю голову, я получаю

 ver  \
d_id  time
1    2018-06-01   (ver1, ver2, ver3.....
2    2018-06-01   (ver1, ver2, ver3.....
3    2018-06-01   (ver1, ver2, ver3.....


f_name  \
d_id   time
1  2018-06-01   (f_name1, f_name2, f_name2.....
2  2018-06-01   (f_name1, f_name2, f_name2.....
3  2018-06-01   (f_name1, f_name2, f_name2.....

d_name
d_id   time
1 2018-06-01   (d_name1, dname2, d_name3...
2 2018-06-01   (d_name1, dname2, d_name3...
3 2018-06-01   (d_name1, dname2, d_name3...

Как мне получить следующее d_id время ver d_name f_name где ver, d_name и f_name являются списками.

Надеюсь, это понятно.

1 Ответ

0 голосов
/ 06 сентября 2018

Используйте один аргумент вместо трех

{'d_name': lambda x: tuple(x), 'ver': lambda x: tuple(x), 'f_name': lambda x: tuple(x)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...