2015-10-29 3 views
3

У меня есть dataframe, который выглядит следующим образом:Как объединить строки с одним индексом в одном кадре данных?

A   B   C 
1   1234  Win 
1   2345  Win 
2   1987  Loss 
3   3456  Win 
3   4567  Win 

И я хочу, чтобы это стало:

A   B   C 
1   1234,2345 Win 
2   1987  Loss 
3   3456,4567 Win 

Примечание: Значения C всегда имеют одинаковое значение для того же индекса.

Любой может помочь? Благодаря!

ответ

6

Вы можете groupby на «A» и «C», видя, как их отношения то же самое, отлитый в столбце «B» на ул и join с запятой:

In [23]: 
df.groupby(['A','C'])['B'].apply(lambda x: ','.join(x.astype(str))).reset_index() 

Out[23]: 
    A  C   B 
0 1 Win 1234,2345 
1 2 Loss  1987 
2 3 Win 3456,4567 
Смежные вопросы