2016-04-03 2 views
3

Мне нужно объединить несколько строк в одну строку, которая была бы просто CONCAT с пространствомКак объединить несколько строк в одну строку с пандами

View of my dataframe: 
    tempx  value 
0 picture1   1.5 
1 picture555  1.5 
2 picture255  1.5 
3 picture365  1.5 
4 picture112  1.5 

Я хочу dataframe быть преобразованы так: (разделенных пробелом) tempx значения

Expected output: 
    tempx              value 
    0  picture1 picture555 picture255 picture365 picture112 1.5 

    or 
    as a python dict 
    {1.5:{picture1 picture555 picture255 picture365 picture112}} 

То, что я пробовал:

df_test['tempx']=df_test['tempx'].str.cat(sep=' ') 

это работает, но он сочетает в себе строку во всех столбцах, как это:

 tempx  value 
0 picture1 picture555 picture255 picture365 picture112 1.5 
1 picture1 picture555 picture255 picture365 picture112 1.5 
2 picture1 picture555 picture255 picture365 picture112 1.5 
3 picture1 picture555 picture255 picture365 picture112 1.5 
4 picture1 picture555 picture255 picture365 picture112 1.5 

Есть ли элегантное решение?

+0

также, если есть решение условно объединить на основе значений столбца –

+0

Что вы ожидаемый результат, вы можете редактировать и пример в свой вопрос? Вы хотите «группировать по» столбец значений, чтобы присоединиться к именам картинок в пределах каждого значения? – Marius

+0

Я применил grouby, используя pandas, следующий шаг, который я хотел бы сделать, - это иметь одну строку для каждого атрибута value. пожалуйста, проверьте ожидаемый результат –

ответ

10

Вы можете использовать groupby и apply функцию join:

print df.groupby('value')['tempx'].apply(' '.join).reset_index() 
    value            tempx 
0 1.5 picture1 picture555 picture255 picture365 pict... 
+0

спасибо большое, это сработало! –

+1

Рад может вам помочь! Удачи! – jezrael

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