Выбор столбца из мультииндексного фрейма данных, например, для создания гистограммы. - PullRequest
1 голос
/ 12 июня 2019

Это первый раз, когда я работаю с многоиндексными фреймами данных.У меня есть фрейм данных, который выглядит следующим образом (крошечный пример):

import random
col3=[0,0,0,0,2,4,6,0,0,0,100,200,300,400]
col4=[0,0,0,0,4,6,8,0,0,0,200,900,400, 500]

d = {'Unit': [1, 1, 1, 1, 2, 2, 2, 3, 4, 5, 6, 6, 6, 6], 
 'Year': [2014, 2015, 2016, 2017, 2015, 2016, 2017, 2017, 2014, 2015, 2014, 2015, 2016, 2017], 'col3' : col3, 'col4' : col4 }
df = pd.DataFrame(data=d)
df.groupby(['Unit', 'Year']).sum()

df = df.groupby(['Unit', 'Year']).sum()

df['mask'] = (df.groupby(level=0, group_keys=False)
                  .apply(lambda x: x.col3/x.col4.shift()))

df['mask'] = df['mask'].fillna(0) 

Теперь я хочу создать гистограмму, например, из значений в столбце маски, возможно ли это без предварительного создания списка?

Я сделал это так:

values = [x for x in df['mask']]
plt.hist(values)

Но я хочу сделать это предпочтительно без промежуточного списка.

Спасибо,

Джен

1 Ответ

1 голос
/ 12 июня 2019

Понимание списка здесь не требуется, только передайте Series на plot:

plt.hist(df['mask'])

или используйте Series.plot.hist:

df['mask'].plot.hist()
...