#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