Постройте несколько столбцов из DataFrame Pandas с промежутками между датами [дубликат]Python

Программы на Python
Anonymous
Постройте несколько столбцов из DataFrame Pandas с промежутками между датами [дубликат]

Сообщение Anonymous »


Я объединил большой набор данных CSV, который обрабатывается пандами. Есть некоторые недостающие данные, которые я удаляю, оставляя пробелы в дате.

При построении столбец с отсутствующей датой кажется смещенным, а не сгруппирован по существующим точкам дат, указанным в основном столбце (Просмотры)

Просто отображаем виды, даты нетронуты

Отображение данных с пробелами в датах

Набор данных, при желании: ссылка

Текущий код Python:

plt.rcParams[("figure.figsize")] = [10, 5] query = "Оппенгеймер (фильм)" dfMonthly = pd.read_csv("dataset/out/topviews_merged.csv").set_index("Дата").sort_values("Дата", по возрастанию=True) df = dfMonthly[dfMonthly.Page.isin([запрос])] df["Просмотры"].plot(title=query, label="Просмотры", легенда=True) plt.ylabel("Просмотры в миллионах") маска = df["Редактирование"] == "?" df[~mask]["Редактирование"].astype(int).plot(вторичный_y=True, label="Редактирование", легенда=True) plt.ylabel("Изменения") печать(df[~маска]) маска = df["Редакторы"] == "?" df[~mask]["Редакторы"].astype(int).plot(вторичный_y=True, label="Редакторы", легенда=True) plt.gcf().autofmt_xdate(вращение=45) plt.show() РЕДАКТИРОВАТЬ: Хотя это было помечено как дубликат, я уже пробовал предложенное решение: повторное использование объекта Axis, полученного при построении первого DataFrame, на самом деле не решает мою проблему.

Изменение кода на

plt.rcParams[("figure.figsize")] = [10, 5] query = "Оппенгеймер (фильм)" dfMonthly = pd.read_csv("dataset/out/topviews_merged.csv").set_index("Дата").sort_values("Дата", по возрастанию=True) df = dfMonthly[dfMonthly.Page.isin([запрос])] ax = df["Просмотры"].plot(title=query, x="Date", label="Просмотры", легенда=True) plt.ylabel("Просмотры в миллионах") маска = df["Редактирование"] == "?" df[~mask]["Редактирование"].astype(int).plot(x="Дата", y="Редактирование", ax=ax, Secondary_y=True, label="Редактирование", Legend=True) plt.ylabel("Изменения") маска = df["Редакторы"] == "?" df[~mask]["Редакторы"].astype(int).plot(ax=ax, x="Date", Secondary_y=True, label="Редакторы", легенда=True) plt.gcf().autofmt_xdate(вращение=45) plt.show() Не изменяет искаженный результат, полученный при построении других столбцов.

Вернуться в «Python»