Это, как правило, лучше переносить свои данные в длинная форма при использовании морского дна (ну, в общем случае). Исключением является использование тепловых карт, для которых вам нужно будет поворачиваться в чистую таблицу или матрицу с двумя переменными.
Anyways , в длинной форме каждая строка имеет ровно одно наблюдение, а вспомогательные функции - это только дополнительные столбцы на этих строках. В вашем конкретном случае каждая строка имеет несколько наблюдений (по 1 для каждого y ухо, учитывая компанию и метрику), поэтому мы хотели бы преобразовать это в длинную форму, в которой год является просто еще одной особенностью вашего наблюдения. К счастью, pnd.melt
может помочь вам в этом, так как он предназначен именно для этой цели.
Давайте начнем с общим pnd.DataFrame
, основанный на ваших:
In [1]: import pandas as pnd
In [2]: import seaborn as sns
In [3]: df = DataFrame.from_dict({
...: 'company': ['A', 'B', 'A', 'B', 'C'],
...: 'metric': ['SG', 'SG', 'RG', 'RG', 'SG'],
...: '2005': [1, 2, 3, 4, 5],
...: '2006': [4, 5, 6, 7, 8]})
In [4]: df
Out[4]:
2005 2006 company metric
0 1 4 A SG
1 2 5 B SG
2 3 6 A RG
3 4 7 B RG
4 5 8 C SG
Преобразования в долгосрочную форму с использованием pnd.melt
:
In [5]: df_melt = pnd.melt(df,
id_vars=['company', 'metric'],
value_vars=['2005', '2006'],
var_name='year',
value_name='value')
In [6]: df_melt
Out[6]:
company metric year value
0 A SG 2005 1
1 B SG 2005 2
2 A RG 2005 3
3 B RG 2005 4
4 C SG 2005 5
5 A SG 2006 4
6 B SG 2006 5
7 A RG 2006 6
8 B RG 2006 7
9 C SG 2006 8
И, наконец, с sns.factorplot
вы можете использовать параметры, такие как, х , hue, row, col, чтобы визуализировать данные, выполнив коэффициент-пробои:
In [7]: sns.factorplot(data=df_melt,
x='year',
y='value',
hue='metric',
col='company')
Out[7]: <seaborn.axisgrid.FacetGrid at 0x7f6286fee890>
In [8]: from matplotlib import pyplot as plt
In [9]: plt.show()
Peter - Большое вам спасибо за то, что нашли время, чтобы помочь. Я прочитаю это и последую вашему руководству. Будучи новичком в этом сообществе, я очень ценю доброту незнакомцев. Еще раз спасибо. – NickP
Не беспокойтесь, радуйся, удачи! – peterfields