Как построить график распределения значений столбцов в pandas
Вы можете использовать следующие методы для построения графика распределения значений столбцов в DataFrame pandas:
Способ 1: построить график распределения значений в столбце
df[' my_column ']. plot (kind=' kde ')
Способ 2. Постройте график распределения значений в одном столбце, сгруппированных по другому столбцу.
df. groupby (' group_column ')[' values_column ']. plot (kind=' kde ')
В следующих примерах показано, как использовать каждый метод на практике со следующим DataFrame pandas:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'], ' points ': [3, 3, 4, 5, 4, 7, 7, 7, 10, 11, 8, 7, 8, 9, 12, 12, 12, 14, 15, 17]}) #view DataFrame print (df) team points 0 to 3 1 to 3 2 to 4 3 to 5 4 to 4 5 TO 7 6 to 7 7 to 7 8 to 10 9 to 11 10 B 8 11 B 7 12 B 8 13 B 9 14 B 12 15 B 12 16 B 12 17 B 14 18 B 15 19 B 17
Пример 1. Постройте график распределения значений в столбце
Следующий код показывает, как построить график распределения значений в столбце точек :
#plot distribution of values in points column df[' points ']. plot (kind=' kde ')
Обратите внимание, что kind=’kde’ сообщает pandas использовать оценку плотности ядра , которая создает плавную кривую, суммирующую распределение значений переменной.
Если вы хотите вместо этого создать гистограмму, вы можете указать kind=’hist’ следующим образом:
#plot distribution of values in points column using histogram df[' points ']. plot (kind=' hist ', edgecolor=' black ')
Этот метод использует столбцы для представления частот значений в столбце точек , а не плавную линию, которая суммирует форму распределения.
Пример 2. Постройте график распределения значений в одном столбце, сгруппированных по другому столбцу.
Следующий код показывает, как построить график распределения значений в столбце очков , сгруппированных по столбцу команды :
import matplotlib.pyplot as plt #plot distribution of points by team df. groupby (' team ')[' points ']. plot (kind=' kde ') #add legend plt. legend ([' A ',' B '], title=' Team ') #add x-axis label plt. xlabel (' Points ')
Синяя линия показывает распределение очков игроков команды А, а оранжевая линия показывает распределение очков игроков команды Б.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Как добавить заголовки к графикам в Pandas
Как настроить размер фигуры на графике панды
Как построить несколько кадров данных Pandas на подграфиках
Как создавать и настраивать легенды сюжетов в Pandas