Не понимаю, как построить мой фрейм данных на диаграмме Санки - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь использовать заговор, чтобы построить диаграмму Санки о том, как мои клиенты перемещаются между сегментами продаж каждую неделю.Прямо сейчас мой фрейм данных выглядит следующим образом:

account_id |    week    | sales_bucket
     1     | 2019-06-10 |   $0-20
     1     | 2019-06-17 |   $21-40
     1     | 2019-06-24 |   $0-20
     2     | 2019-06-10 |   $40-60
     2     | 2019-06-17 |   $40-60
     3     | 2019-06-17 |   $60-80
     4     | 2019-06-10 |   $40-60

По сути, я хочу отслеживать, переходят ли клиенты на более высокие сегменты неделя за неделей.Но не каждый клиент совершает транзакцию каждую неделю, и, разумеется, каждую неделю появляются новые клиенты.У меня возникают проблемы, когда я не могу понять, как быстро получить свой фрейм данных в структуру source-sink-count, которая графически требуется от фрейма данных, который у меня есть выше.

1 Ответ

0 голосов
/ 05 июля 2019

Предполагая, что ваши ссылки должны быть примерно такими:

label = [
  "Week 1 - Bucket 1", 
  "Week 1 - Bucket 2", 
  "Week 1 - Bucket 3", 
  "Week 2 - Bucket 1", 
  ...
  ]

Тогда source и target (поток от исходная метка до целевой метки индекс) в принципе:

source = [0, 0, 0, 1, 1, 1, 2, 2, 2, ...]
target = [3, 4, 5, 3, 4, 5, 3, 4, 5, ...]

Последний бит для расчета весов в ссылках.Для этого вы можете использовать group_by и agg из pandas:

value = df.groupby(['Week', 'Sales Bucket'])['Id'].agg('sum').values.flatten()
...