我想在Pandas ByGroup中应用scipy.stats.linregress.我查看了文档,但我能看到的是如何将某些内容应用于单个列
grouped.agg(np.sum)
或类似的功能
grouped.agg('D' : lambda x: np.std(x, ddof=1))
但是如何应用具有两个输入X和Y的linregress?
解决方法:
linregress
函数以及许多其他scipy / numpy函数接受“类似阵列”的X和Y,Series和DataFrame都可以获得资格.
例如:
from scipy.stats import linregress
X = pd.Series(np.arange(10))
Y = pd.Series(np.arange(10))
In [4]: linregress(X, Y)
Out[4]: (1.0, 0.0, 1.0, 4.3749999999999517e-80, 0.0)
事实上,能够使用scipy(和numpy)功能是熊猫杀手功能之一!
因此,如果您有一个DataFrame,您可以在其列(系列)上使用linregress:
linregress(df['col_X'], df['col_Y'])
如果使用groupby,您可以类似地应用(对每个组):
grouped.apply(lambda x: linregress(x['col_X'], x['col_Y']))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。