Matlib отображает каждую запись, хочет объединить итоги для каждой страны - PullRequest
0 голосов
/ 06 июля 2018

Я сделал все, что мог придумать, чтобы получить этот df:

df = pd.DataFrame({'nationality': ['united states', 'unknown', 'unknown', 'nigeria', 'nigeria', 'united states', 'nigeria', np.nan, 'france', 'nigeria', 'nigeria', 'nigeria'], 'worldcat_libcount': [128.0, 58.0, 17.0, 89.0, 295.0, 3.0, 71.0, np.nan, 26.0, 6.0, 8.0, 20.0]})
print (df)
      nationality  worldcat_libcount
0   united states              128.0
1         unknown               58.0
2         unknown               17.0
3         nigeria               89.0
4         nigeria              295.0
5   united states                3.0
6         nigeria               71.0
7             NaN                NaN
8          france               26.0
9         nigeria                6.0
10        nigeria                8.0
11        nigeria               20.0

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

граф подсчета

Любой совет относительно того, что я должен делать, чтобы Нигерия не состояла из нескольких пунктов, был бы оценен!

1 Ответ

0 голосов
/ 06 июля 2018

Вам нужно агрегировать данные с groupby и sum, а затем построить график по Series.plot.bar:

s = df.groupby('nationality')['worldcat_libcount'].sum()
s.plot.bar()

graph

...