Нахождение R2 и крутизны для отдельных последовательностей

1

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

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

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)
  • 0
    Это не должно быть слишком сложно выяснить. Не могли бы вы вставить свой код?
  • 1
    @Marouen Маруэн, я вставил код, который помогает вычислить наклон.
Показать ещё 1 комментарий
Теги:
pandas
matplotlib
python-3.x
scipy

1 ответ

0

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

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

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

Чтобы seaborn данные по категориям в подзаговорах, у 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()
  • 0
    Я использовал следующий код: xyDataPairs = df [['x-axis', 'y-axis']]. Values.tolist (); df.groupby ('Country', as_index = True) ['x-axis', 'y-axis']. apply (linregress) slope = linregress (x, y) [0]; # уклон в единицах печати г / х («лучший уклон:», уклон); # Я получаю наклон для всей колонки, а не для отдельных стран
  • 1
    @ Rahul007 выполните следующие действия: res=df.groupby('Country', as_index=True)['x-axis','y-axis'].apply(linregress); print(res)
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню