Добавление всего текста в один столбец из разных строк

#pandas #dataframe #text-mining #data-cleaning

#pandas #фрейм данных #интеллектуальный анализ текста #очистка данных

Вопрос:

У меня есть фрейм данных с 2 столбцами. Первый столбец — это идентификатор студента, а второй столбец — мнение студента об экзамене. У студента может быть одна или несколько строк об экзамене. Как я могу добавить весь текст от каждого учащегося в одну строку для каждого учащегося? На картинке у нас 3 ученика. Первый студент выразил свое мнение в 3 строках. Как я могу составить его мнение в одной строке. введите описание изображения здесь

Комментарии:

1. Добро пожаловать в SO и поздравляю с вашим первым вопросом. Прочитайте руководство о том, как задавать вопросы psot. Как правило, публикуйте образец ваших данных, а не скриншот. Это делает его очень утомительным для тех, кто хочет вам помочь. Кроме того, попробуйте поделиться своими личными попытками решения проблемы.

2. @Fadi пожалуйста, примите один из ответов в качестве решения, нажав на галочку рядом с моим ответом. Спасибо!

Ответ №1:

Предполагая, что вы хотите использовать перевод строки в качестве разделителя:

 df.groupby('student ID')['Transcript'].apply(lambda t: 'n'.join(t))
 

n При предварительном просмотре фрейма данных в IPython или Jupyter вы увидите несколько символов, но они являются просто индикатором фактического символа новой строки, а не буквальной косой черты-n ( n )

Ответ №2:

Вы можете использовать .agg('. '.join) , если пытаетесь объединить разные строки в одну строку в виде нескольких предложений:

 print(df)
In[1]: 
   student ID Transcript
0      101010          A
1      101010          B
2      101010          C
3      202020          A
4      202020          B
5      303030          A
6      303030          B
 

 df.groupby('student ID')['Transcript'].agg('. '.join).reset_index()

Out[1]: 
   student ID Transcript
0      101010    A. B. C
1      202020       A. B
2      303030       A. B