2015-12-03 6 views
0

У меня есть Панды DataFrame, и я groupby столбец, называющие .size, а затем называют .plot.barPython Панды - сортировать гистограмму GroupBy участка

Я хочу, чтобы изменить порядок брусков от некоторых столбцов в исходном dataframe, но прохождение их в sort_columns для bar() не работает:

nodes.groupby("Name").size().plot.bar(sort_columns="Class") 

предварительная сортировка столбцов в dataframe также не оказывает влияния - как можно заказать столбцы в гистограмме панды?

+0

Я получаю «AttributeError», когда пытаюсь запустить строку «nodes.groupby ...». Пожалуйста, предоставьте [рабочий пример] (http://stackoverflow.com/help/mcve). – Bart

+0

Сгруппированный и агрегированный 'DataFrame' будет иметь меньше строк, чем исходный (если было что угодно, чтобы сгруппировать). Как вы планируете сортировать сокращенный второй «DataFrame» по столбцам более крупного источника с большим количеством записей? – Stefan

+0

Стефан, столбцы сгруппированных позиций, которые я хочу сортировать, должен быть однородным (для каждой группы все записи должны быть одинаковыми). Im группировка по имени и классу зависит от каждого имени. –

ответ

0

Я создал случайный dataframe, чтобы визуализировать данные.

#creating random data 

data = {'a' : np.random.randint(0, 10, size = 10), 
     'b' : np.random.randint(0, 10, size = 10), 
     'c' : np.random.randint(0, 10, size = 10), 
     'd' : np.random.randint(0, 10, size = 10), 
     'e' : np.random.randint(0, 10, size = 10)} 

df = pd.DataFrame(data) 

# Custom sorting of columns 
df.iloc[0][['a', 'c', 'd', 'b', 'e']].T.plot.bar() 

[Plot 1]

# Sorting columns in acsending or decending order 
df.iloc[0].sort_values(ascending = False).T.plot.bar() 

[Plot 2]

Примечание: column_sort параметр сортирует столбцы по именам не их значения.

Смежные вопросы