С накоплением столбцов количества элементов одного столбца, организованного другим столбцом - PullRequest
0 голосов
/ 23 марта 2020

Мне трудно составить диаграмму, в которой отсчеты одного объекта сложены для другого объекта.

Предположим, что ниже приведен кадр данных:

     method  year proteins  values       QC
0      John  2018        A      30     PASS
1      Kate  2018        B      11     PASS
2      Kate  2018        C      22  NO-PASS
3   Patrick  2019        A      60     PASS
4   Patrick  2019        B      40  NO-PASS
5   Patrick  2019        C      50  NO-PASS
6      Mary  2017        A       8  NO-PASS
7      Mary  2017        B      11     PASS

У меня пока так: (df['QC'].value_counts(dropna=True, normalize=True)*100).plot(kind='bar', rot=0, color='c', title='how many pass QC').set(xlabel="QC options", ylabel="% proteins"), который выдает базовый c гистограмма графов.

pab plot of counts

Но мне действительно нужно, чтобы каждый бар был "построен рассчитывает на белок ", как показано ниже, сделано с Excel. Я тоже попытался повернуть его, но у меня нет числовых данных, и я не могу двигаться дальше.

bar plot of counts per protein with excel

Спасибо за ваше помощь!

1 Ответ

1 голос
/ 23 марта 2020

Pandas будет отображать каждый столбец как бары и складывать их с ключевым словом stacked = True . Таким образом, вы должны рассчитать и изменить ваши данные, чтобы соответствовать этой логике c.

# Get the #'s data points in the groups
gdf = df.groupby(['proteins', 'QC'])['values'].count()

# Normalize to 100.0
gdf = gdf.div(gdf.sum())*100.0

# Since we want to stack by protiens, lets make them columns
gdf = gdf.unstack('proteins')

# If you want to choose a subset of columns to plot
col_to_plot = gdf.columns.tolist()

# Plot command
gdf[col_to_plot].plot(kind='bar', stacked=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...