Постройте несколько столбцов из DataFrame Pandas с промежутками между датами [дубликат] ⇐ Python
-
Anonymous
Постройте несколько столбцов из DataFrame Pandas с промежутками между датами [дубликат]
Я объединил большой набор данных 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() Не изменяет искаженный результат, полученный при построении других столбцов.
Я объединил большой набор данных 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() Не изменяет искаженный результат, полученный при построении других столбцов.