#python-3.x #pandas #group-by #pivot-table
#python-3.x #pandas #групповое #сводная таблица
Вопрос:
У меня есть платформа, отслеживающая несколько чатов с клиентами и представителями. Я хочу создать фреймы данных, содержащие всю историю заказанных чатов одного клиента.
И для краткой справки:
Convo Room Date Message Order User ID Role Chat contents
A1 3-Oct-17 1 JOHN CUSTOMER Hi, can you help?
A1 4-Oct-17 2 ALICE REP Sure, what's up?
A1 5-Oct-17 3 JOHN CUSTOMER I have warts.
A1 6-Oct-17 4 JOHN CUSTOMER Please don't hang up, it's just warts.
B1 7-Oct-17 1 JOHN CUSTOMER Hi, can YOU help?
B1 8-Oct-17 2 MARY REP Sure, I heard about Alice.
B1 9-Oct-17 3 MARY REP I also have warts.
B1 10-Oct-17 4 JOHN CUSTOMER Oh, nevermind then, gotta go.
C1 7-Oct-17 1 JIM CUSTOMER Hi, can you help?
C1 8-Oct-17 2 ALICE REP Maybe, what's up?
C1 9-Oct-17 3 JIM CUSTOMER Not warts.
C1 10-Oct-17 4 ALICE REP Good, that's the only thing I cannot handle.
D1 15-Oct-17 1 JOHN CUSTOMER Hi, pls help. Warts.
D1 16-Oct-17 2 JUDE REP Perfect, I cure them!
D1 17-Oct-17 3 JUDE REP …with fire.
D1 18-Oct-17 4 JUDE REP Are you still there? Dang, lost another one.
На мой взгляд, первым шагом является упорядочение данных с помощью сводных таблиц. Далее я могу сосредоточиться на разделении чатов на фреймы данных для анализа настроений или других показателей.
Я полагаю, что я близок к этому, но я продолжаю ошибаться в части сортировки.
Что у меня есть на данный момент:
df = test.pivot_table(index=['Role', 'User ID', 'Date', 'Convo Room', 'Message Order'],columns=["Role"],aggfunc='first')
df.head()
Который возвращает следующее:
Используя Excel, я считаю, что в целом это то, что я хочу, хотя я уверен, что есть много способов визуализировать это:
Ответ №1:
Вы на правильном пути, просто нужно убедиться, что вы передаете правильный столбец в pivot_table
df.pivot_table(index=[ 'User ID', 'Convo Room', 'Message Order'],columns=["Role"],values='Chat contents',aggfunc='first')
Комментарии:
1. почти, но это тоже не совсем так. Идентификаторы пользователя отсортированы, но, похоже, я все еще не могу заставить сообщения перемещаться туда и обратно внутри идентификатора пользователя. Я не уверен, что есть способ повторно ссылаться на тот же идентификатор пользователя внутри сводной таблицы, на который ранее ссылались!