2015-09-22 4 views
0
присуща рефлективные, вербальный

Я озадачен этим поведение панды/Matplotlib:Python панд GroupBy перекрываться

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 

series = pd.Series(np.arange(10)) 
classifier = lambda x: 'Odd' if x%2 else "Even" 
grouped = series.groupby(classifier) 

grouped.plot(kind='box') 
plt.show() 

Boxplots overlap

Как получить присуща рефлективные, вербальные рядом друг с другим стилем панды т.е. с красивым синтаксисом? :)

(Панды v 0.16.2, Matplotlib v 1.4.3.).

Edit: Я знаю, что я мог бы сделать это:

grouped = grouped.apply(pd.Series.to_frame) 

, но я предполагаю, что есть более чистый способ сделать это?

+0

является 'seaborn' библиотека вариант? –

+0

Я бы предпочел Matplotlib, так как я преподаю класс, и мы не дотронулись до морского берега ... – HenriV

+0

Морской рисунок построен из matplotlib таким же образом, как и pandas –

ответ

1

Так что мой общий совет, чтобы избежать прокладки через панд со следующими исключениями:

  1. Супер быстрый «п» грязный интерактивная разведка и осмотр
  2. Временные ряды

В любое другое время вы «Я хочу использовать морскую или рулонную собственную функцию matplotlib. Поскольку вы работаете с фреймворком данных, морское судно - ваш лучший выбор, хотя помеченная поддержка данных очень быстро спускается по трубе для matplotlib.

Я также сообщу, что вы продвигаетесь вперед и создаете блок данных с классификацией, хранящейся внутри нее.

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
import seaborn 
seaborn.set(style='ticks') 

df = pd.DataFrame(np.arange(10), columns=['val']) 
df['class'] = df['val'].apply(lambda x: 'Odd' if x%2 else "Even") 
seaborn.boxplot(x='class', y='val', data=df, width=0.5) 
seaborn.despine(offset=10, trim=True) 

enter image description here

+0

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

+0

При ближайшем рассмотрении ваш пример отображает DataFrame, тогда как я искал решение для красивого построения объекта SeriesGroupBy. – HenriV

+0

@HenriV, следовательно, отказ от моего примера кода –

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