Нахождение R2 и крутизны для отдельных последовательностей - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть данные в столбцах, выделенных зеленым, и мне нужно использовать Python, чтобы добраться до столбцов, выделенных желтым цветом и графиков.Я знаю, как построить данные в python, используя matplotlib или узнать наклон и R2, используя scipy, когда мне нужно найти наклоны и R2 для всего столбца.Однако, как видно из прикрепленного изображения, мне нужны четыре разных склона и четыре разных R2 и четыре разных участка для четырех разных стран. enter image description here

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

PS: я использовал случайные данные по осям X и Y.

Редактировать:

Код, который я использовал для вычисления наклона::

import numpy, scipy,pandas as pd, matplotlib
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
from scipy.stats import linregress
import scipy.stats
import copy
df=pd.read_excel("I:/Python/Excel.xlsx")
df.head();

xyDataPairs = df[['x-axis', 'y-axis']].values.tolist();
slope = linregress(x, y)[0];  # slope in units of y / x

print('best slope=', slope)

1 Ответ

0 голосов
/ 20 сентября 2018

Это должно сделать трюк

df.groupby('Country', as_index=True)['x-axis','y-axis'].apply(linregress)

РЕДАКТИРОВАТЬ

Чтобы отобразить данные по категориям в подзаговорах, seaborn имеет интуитивно понятный синтаксис.

import seaborn as sn
sns.set(style="ticks", color_codes=True)

sns.catplot(x="x-axis", y="y-axis",
            col="Country", aspect=.6,
             data=df);
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...