Как мне сгруппировать части имени столбца для прямоугольника? - PullRequest
0 голосов
/ 23 мая 2018

Я ищу groupby подмножество имен столбцов для создания коробочных диаграмм в пандах Python.

У меня есть следующий набор данных:

local_term_1year | regional_term_1year | local_term_2year | regional_term_2year      
-------------------------------------------------------------------------------
30               | 30                  | 40               | 50 
20               | 40                  | 50               | 60

Я надеюсь создать две сгруппированныеграфики для боксов, один на 1 год, другой на 2 года.Также, если возможно, я бы хотел раскрасить каждый блокпост в соответствии с локальным / региональным тегом.

До сих пор я был в состоянии извлечь суффикс и префикс из каждого столбца в отдельную таблицу:

column              | year  | region
---------------------------------------
local_term_1year    | 1year | local
regional_term_1year | 1year | regional
local_term_2year    | 2year | local
regional_term_2year | 2year | regional 

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

1 Ответ

0 голосов
/ 23 мая 2018

Предполагая, что ваш pd.DataFrame называется df, мы можем сделать это следующим образом:

new_df = df.melt(var_name='col', value_name='table_value')
new_df['region'] = new_df.col.str.split('_').str.get(0)
new_df['year'] = new_df.col.str.split('_').str.get(-1)

Затем мы можем использовать seaborn.boxplot для создания запрошенного вами коробочного участка.for:

import seaborn as sns
sns.boxplot(data=new_df, x='year', y='table_value', hue='region')

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я не проверял этот код - если вы предоставите Minimal, Complete и Verifiable пример , я могу проверить его, но он должен работать как есть.Существует особенно полезное руководство о том, как создать такой пример для вопроса о пандах, здесь .

...