熊猫:使用GROUPBY
问题描述:
创建一个表,我有数据帧熊猫:使用GROUPBY
ID subdomain search_engine search_term code category term_code
0120bc30e78ba5582617a9f3d6dfd8ca yandex.ru 0 None 1 поисковая машина 1
0120bc30e78ba5582617a9f3d6dfd8ca my-shop.ru 0 None 5 интернет-магазин 1
0120bc30e78ba5582617a9f3d6dfd8ca ru.tele2.ru 0 None 10 Телеком-провайдеры 1
0120bc30e78ba5582617a9f3d6dfd8ca yandex.com yandex алиэкспресс 1 поисковая машина 6
0120bc30e78ba5582617a9f3d6dfd8ca fb.ru 0 None 3 информационный ресурс 1
0120bc30e78ba5582617a9f3d6dfd8ca shopotam.ru 0 None 4 интернет-агрегатор 1
031ce36695306ac09ae905927a753f33 ya.ru 0 None 1 поисковая машина 1
031ce36695306ac09ae905927a753f33 cyberforum.ru 0 None 3 информационный ресурс 1
031ce36695306ac09ae905927a753f33 fixim.ru 0 None 8 запчасти и ремонт 1
031ce36695306ac09ae905927a753f33 microsoft.com 0 None 9 сайты производителей с возможностью купить 1
031ce36695306ac09ae905927a753f33 market.yandex.ru 0 None 4 интернет-агрегатор 1
我需要得到
ID, path
0120bc30e78ba5582617a9f3d6dfd8ca, поисковая машина -> интернет-магазин -> Телеком-провайдеры -> поисковая машина -> информационный ресурс -> интернет-агрегатор
031ce36695306ac09ae905927a753f33, поисковая машина -> информационный ресурс -> запчасти и ремонт -> сайты производителей с возможностью купить -> интернет-агрегатор
我的意思是我想列term_code
,并将其与分隔符->
转换为字符串到每个ID
我该怎么做?
答
试试这个:
df.groupby('ID')['category'].apply(lambda x: ' -> '.join(list(x)))
演示:
In [14]: df.groupby('ID')['category'].apply(lambda x: ' -> '.join(list(x)))
Out[14]:
ID
0120bc30e78ba5582617a9f3d6dfd8ca поисковая машина -> интернет-магазин -> Телеком-провайдеры -> 6 -> информационный ресурс
-> интернет-агрегатор
031ce36695306ac09ae905927a753f33 поисковая машина -> информационный ресурс -> запчасти и ремонт -> сайты производителей с возможностью купить
-> интернет-агрегатор
Name: category, dtype: object