0

我有下面的图表,这是一个两列数据框的绘图结果,我只是将其绘制为

df.plot(style='o-')

编辑

我绘制了它的运行平均值(感谢下面的人的帮助): df.rolling(5).mean()

我可以使用一些函数pandas来绘制 y 轴在 x 轴上的导数吗?

我已经尝试过这里提出的解决方案:python pandas:如何计算导数/梯度 但它没有用

在此处输入图像描述

4

2 回答 2

1

就像已经解释的那样,它接缝你想要应用相同类型的过滤器而不是运行平均值(在你的情况下应该返回一个数字)。首先,您可以尝试一个简单的移动平均线:

df.rolling(5).mean()

其中 5 是窗口。

于 2019-11-17T08:51:26.747 回答
1

您想要的可能不是“平均”,而是“平滑”或“回归”,这些术语的谷歌可以为您提供更相关的结果。

至于你的问题,Savitzky–Golay 滤波器可能是一个很好的工具,它可以“通过用低次多项式拟合相邻数据点的连续子集”来进行卷积。

在 Python 中,您可以使用scippy.signal.savgol_filter来获得平滑点。
但是,导数会更加棘手,解决方法是使用卷积信号(点)计算斜率。

于 2019-11-17T08:22:35.183 回答