Нанесение нескольких линий на один участок - PullRequest
1 голос
/ 25 мая 2020

В моем наборе данных есть три столбца, а именно дата, продано и товар. Я хотел бы исследовать, где происходит изменение тенденций (например, пик или падение) рыночных продаж.

Date Sold Item
01/02/2018 1 socks
01/03/2018 4 t-shirts
01/04/2018 3 pants
01/04/2018 2 shirts
01/05/2018 1 socks
...
12/12/2018 21 watches
12/12/2018 35 toys
...
12/22/2018 43 flowers
12/22/2018 25 toys
12/22/2018 32 shirts
12/22/2018 70 pijamas
...
12/31/2018 12 toys
12/31/2018 2  skirts

Для этого я рассмотрел две вещи:

  • общее количество продаж на дату (например, 1 2 января 2018 г .; 4 3 января 2018 г. ; 5 от 4 января 2018 г. и т. Д.);
  • количество продаж на единицу товара во времени (т. Е. Анализ тенденции каждого товара во времени отдельно)

Первый ключевой момент должны быть легко оценены с помощью groupby; второй ключевой момент также должен быть выполнен с помощью groupby. Однако мои трудности заключаются в нанесении всех элементов на один и тот же сюжет (предпочтительно линейный сюжет).

Я сделал следующее:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn

df = pd.read_csv("./MarketSales.csv")
sales_plot = df[Item].groupby("Sold").sum().sort_values("Sold",ascending=False).plot()
sales_plot.set_xlabel("Date")
sales_plot.set_ylabel("Frequency")

К сожалению, приведенный выше код не дает ожидаемых результатов. Самый сложный вариант c в Python - это использование группировки и сюжета.

Надеюсь, вы поможете мне разобраться в подходе.

1 Ответ

1 голос
/ 25 мая 2020

Я не уверен, почему вы groupby «Продано», потому что, похоже, вас интересует количество проданных на дату, поэтому вот две строки кодов, которые будут адресовать ваши две точки:

df.groupby(['Date'])['Sold'].sum().plot()
#and
df.groupby(['Date','Item'])['Sold'].sum().unstack().plot()

Кроме того, вы можете захотеть преобразовать свою дату раньше с помощью df['Date'] = pd.to_datetime(df['Date']), чтобы лучше визуализировать время

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...