Перестановка заголовков в linregress python - PullRequest
0 голосов
/ 23 сентября 2018

Я использую Linregress в Python для получения наклона, перехвата и т. Д.

Выходные данные представляют собой CSV-файл.Однако вывод данных не имеет заголовков в столбцах.Вывод данных выглядит так: slope = 5,562, перехват = 223,5 и т. Д.

К этому приложению прилагается изображение с тем, что я вижу в блокноте Jupyter (левое изображение), против того, что мне нужно, чтобы данные были (правое изображение).t переставляет данные так, чтобы заголовки были видны не по горизонтали, а по вертикали.

enter image description here

Будет здорово, если я смогу получить помощь по этому вопросу.

Спасибо за чтение !!

1 Ответ

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

Вы можете сделать что-то вроде:

res = df.groupby('Test_event')[['x','y']].apply(linregress).apply(pd.Series)

res.columns = ['slope','intercept','rvalue','pvalue','stderror']

Хотя цепочка apply не идеальна

Пример:

>>> df
   Test_event  x   y
0           5  1   4
1           5  1   5
2           5  2   6
3           6  3   8
4           6  4  10
5           6  5  11

>>> res = df.groupby('Test_event')[['x','y']].apply(linregress).apply(pd.Series)
>>> res.columns = ['slope','intercept','rvalue','pvalue','stderror']
>>> res
            slope  intercept    rvalue    pvalue  stderror
Test_event                                                
5             1.5   3.000000  0.866025  0.333333  0.866025
6             1.5   3.666667  0.981981  0.121038  0.288675

В качестве альтернативыВы могли бы сделать это, но я не уверен, что это более эффективно:

res = (df.groupby('Test_event')
       .apply(lambda group: pd.Series(linregress(group['x'],group['y']))))

res.columns = ['slope','intercept','rvalue','pvalue','stderror']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...