Как подготовить сводную таблицу в Python? - PullRequest
0 голосов
/ 21 апреля 2019

начинающий программист здесь.Я пытаюсь выучить Python и работаю с набором данных о рождении в США, который содержит данные о рождении в США за 1994–2003 годы.показывая общее количество рождений в месяц в каждом году.Я "потратил впустую" целый день, пытаясь, но не могу найти правильный путь.Я получил сводную таблицу со всеми необходимыми данными, но не могу поместить ее в график.

https://imgur.com/a/zfp8OLV[table

%matplotlib inline

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

df = pd.read_csv("data/us_births.csv", skipinitialspace=True)
birth_per_month = df.groupby(['year','month']).births.sum().reset_index(name ='Births')

pd.pivot_table(birth_per_month, index='year', columns='month', values='Births')

1 Ответ

0 голосов
/ 21 апреля 2019

Ваш базовый код правильный, и, возможно, это может помочь вам:

import pandas as pd
import numpy as np

import matplotlib.pyplot as plt
%matplotlib inline

df = pd.read_csv("births.csv")
birth_per_month = df.groupby(['year','month']).births.sum().reset_index(name ='Births')
df = pd.pivot_table(birth_per_month, index='year', columns='month', values='Births')

Отсюда мы можем начать с субплоттинга. Формат, в котором вы используете год и соответствующие данные, может превратиться в серию в Pandas, которая не поддерживает точечные графики. вместо этого попробуйте это:

fig, axarr = plt.subplots(5,2, figsize=(16,12))

axarr[0,0].scatter(df.columns,df.loc[1994])
axarr[0,0].set_title('1994')
axarr[0,1].scatter(df.columns,df.loc[1995])
axarr[0,1].set_title('1995')
axarr[1,0].scatter(df.columns,df.loc[1996])
axarr[1,0].set_title('1996')
axarr[1,1].scatter(df.columns,df.loc[1997])
axarr[1,1].set_title('1997')
#And so on

В итоге вы получите нечто похожее на это: https://i.stack.imgur.com/4bvPx.png

Надеюсь, это поможет вам

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