我在 Python 中使用 Linregress 来获取斜率、截距等
输出是一个 csv 文件。但是,数据输出的列中没有标题。数据输出为:slope=5.562,intercept=223.5 etc
附上一张图片,其中包含我在 Jupyter 笔记本中看到的内容(左图)与我需要的数据(右图)。 t 正在重新排列数据,以便标题不是水平显示而是垂直显示。
如果我能得到这方面的帮助,那就太好了。
感谢您的阅读!!
最佳答案
你可以做一些类似的事情:
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']
关于python - 重新排列 linregress python 中的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52461883/