У меня есть фрейм данных с такой структурой:
custid province year features... label
123 AB 2005 ... 0
124 ON 2006 ... 1
...
999 QC 2012 ... 1
Последний столбец - метка / цель.
У меня есть лямбда-функция:
def churn_per_feature(x):
d = {}
d['churn_count'] = (x['label'] == 1).sum()
d['cust_count'] = x['custid'].nunique()
d['churn_rate'] = d['churn_count'] / float(d['cust_count'])
return pd.Series(d, index = ['churn_count', 'cust_count', 'churn_rate'])
У меня есть группировка для двух переменных: province
и year
:
churn_per_province_year = df.groupby(['province', 'year']).apply(churn_per_feature)
Я пытаюсь pyplot
это, один график с линиями, где ось X является years
и каждая строка представляет province
(пока я выбираю только 4 провинции с наибольшим числом клиентов, поэтому это не в цикле):
plt.plot(years, churn_per_province_year[churn_per_province_year['province'] == 'ON']['cust_count'])
plt.plot(years, churn_per_province_year[churn_per_province_year['province'] == 'AB']['cust_count'])
plt.plot(years, churn_per_province_year[churn_per_province_year['province'] == 'BC']['cust_count'])
plt.plot(years, churn_per_province_year[churn_per_province_year['province'] == 'QC']['cust_count'])
plt.show()
Я не знаю, как ссылаться на years
часть.