2016-08-22 149 views
-4

創建一個表,我有數據幀熊貓:使用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 我該怎麼做?

回答

1

試試這個:

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