Как построить гистограмму, показывающую количество частот различных сегментов, созданных из столбца фрейма данных?

#python #pandas #dataframe #matplotlib #bar-chart

#python #панды #dataframe #matplotlib #гистограмма

Вопрос:

У меня есть прикрепленный ниже фрейм данных, и мне нужно построить столбчатую диаграмму, показывающую количество пробегов по оси x и частоту / количество по оси y.

Я пробовал эту команду, но она не отображает правильные результаты —

bins = [0,10,20,30,40]

plt.hist(df.Runs, bins, histtype=’bar’)

plt.xlabel(‘x’) plt.ylabel(‘y’)

dataframe

Я получаю приведенный ниже график : —

введите описание изображения здесь

Ожидаемый график, который я хочу —

введите описание изображения здесь

Комментарии:

1. Что вы подразумеваете под «неправильным отображением результатов» ? Можете ли вы описать, что именно не так? Кстати, если вы предоставите bins = [0,10,20,30,40] , ожидается, что значения, превышающие 40 , не будут представлены.

2. @JohanC Я добавил графики, которые я получаю из своего кода, и тот, который я ожидаю, что он появится.

3. Вероятно, ваши «прогоны» представляют собой строки вместо чисел. Если вы читаете в фрейме данных с помощью такой функции, как pd.read_csv() , правильное преобразование обычно происходит автоматически. В противном случае df['DataFrame Column'] = df['DataFrame Column'].astype(int) следует выполнить преобразование. Обратите внимание, что у вас есть несколько столбцов, которые должны быть числовыми.

4. @JohanC Я использую только pd.read_csv

5. С помощью, например df.info() , вы можете узнать тип столбцов. Вы также можете попробовать df.hist() использовать гистограмму pandas или, может быть, seaborn histplot()

Ответ №1:

Вам нужно выполнить очистку данных, и вам нужно удалить строки ‘DND’ и ‘TDNB’ из прогонов, затем вам нужно импортировать seaborn, затем вам нужно отобразить ответ grap: bins=[0,10,20,30,40] sns.displot(df.Runs,bins) plt.show()