2016-09-01 2 views
1

У меня есть dataframe, как показано ниже: оба столбца являются строками, а ValCol - это целая цепочка целых чисел, разделенных запятыми. Индекс представляет собой общий целочисленный индекс без значения.Объединение значений столбцов в значения строк в Pandas

NameCol ValCol 
Name1  555, 333 
Name2  433 
Name1  999 
Name3  123 
Name2  533 

Какой самый лучший способ объединить его

NameCol ValCol 
Name1  555, 333, 999 
Name2  433, 533 
Name3  123 

T не заботиться о порядке разделенных запятыми чисел, но мне нужно, чтобы сохранить запятые между ними. Скорее всего, это будет очень маленький фрейм данных, < 100 записей, поэтому эффективность не является критичной.

Я чувствую, что к этому должен быть какой-то групповой подход, но я еще не понял его.

ответ

4

Использование groupby подход:

df = df.groupby('NameCol')['ValCol'].apply(', '.join).reset_index() 

Полученный выход:

NameCol   ValCol 
0 Name1 555, 333, 999 
1 Name2  433, 533 
2 Name3   123 
+0

Это делает так много смысла и очень чистый, спасибо! – John

Смежные вопросы