2016-06-20 3 views
2

У меня возникла проблема при анализе набора данных о объединении строки. Кадр данных выглядит как на картинке ниже:Объединение строки в python pandas

IP  Event 
01  check 
01  redo 
01  view 
02  check 
02  check 
03  review 
04  delete 

Как вы можете видеть, IP содержит дубликаты. Мой вопрос, как я могу получить результаты объединения группы событий по каждому IP в примере order.For, результат я ищу это:

IP result 
01 check->redo->view 
02 check->check 
03 review 
04 delete 

ответ

3

попробовать это:

In [27]: df.groupby('IP').agg('->'.join).reset_index() 
Out[27]: 
    IP    Event 
0 01 check->redo->view 
1 02  check->check 
2 03    review 
3 04    delete 

или

In [26]: df.groupby('IP').agg('->'.join) 
Out[26]: 
       Event 
IP 
01 check->redo->view 
02  check->check 
03    review 
04    delete 
+0

Спасибо, дружище! Теперь это работает – Ethan

+0

@ EthanBao, добро пожаловать! :) Пожалуйста, примите [accepting] (http://meta.stackexchange.com/a/5235) самый полезный ответ - это также укажет, что на ваш вопрос был дан ответ – MaxU

1

Попробуйте это с лямбда:

df.groupby("IP")['Event'].apply(lambda x: '->'.join(x)).reset_index() 


    # IP   Event 
# 0 1 check->redo->view 
# 1 2  check->check 
# 2 3    review 
# 3 4    delete 
Смежные вопросы