Предположим, это ваше DataFrame
:
data = {'labels': ["A-F", "G-L", "M-R", "S-Z"], 'count':[1882, 3096, 3830, 1017]}
df = pd.DataFrame.from_dict(data)
print(df)
labels count
0 A-F 1882
1 G-L 3096
2 M-R 3830
3 S-Z 1017
Теперь вам нужно рассчитать процент каждой строки:
df['percentage'] = (df['count'] / df['count'].sum()) * 100
print(df)
labels count percentage
0 A-F 1882 19.155216
1 G-L 3096 31.511450
2 M-R 3830 38.982188
3 S-Z 1017 10.351145
, а затем нанесите метки в зависимости от процента, используя функцию df.plot()
и указав ее kind
, которая, как я полагаю, является барплотом.
df.plot(kind='bar', x='labels', y='percentage')
Это даст следующий сюжет:
![enter image description here](https://i.stack.imgur.com/i0AvA.png)
Edit:
Метод value_counts()
возвращает объект pd.Series()
. Чтобы построить его, вы можете запустить следующую строку:
df.range.value_counts(normalize=True).plot(kind='bar')