【问题标题】:How to smoothly impute values in a Pandas DataFrame?如何在 Pandas DataFrame 中平滑地估算值?
【发布时间】:2021-09-21 21:47:12
【问题描述】:

我正在使用 StreamlitPandasQuandl Nasdaq Nordic Dataset 进行数据科学项目。


当我使用 Python Quandl 模块获取数据并将其绘制在 streamlit.area_chartstreamlit.line_chart 上时,它似乎有一些缺失值或下降到 0 的值。我想估算这些,但无论我使用"mean" 还是median,估算的数据都有宽阔的平坦部分。



这里是平坦区域的放大图


我显然不想要这个。是否有任何其他方法可以使用 pandassklearn SimpleImputer 或任何其他资源估算值,以保持估算的趋势?


我的建议可能是从周围的行中取平均值,例如移动平均线,但我不知道如何实施,或者这是否是最好的方法。


感谢您的宝贵时间。


【问题讨论】:

  • 估算的方法有很多,我不确定你在找什么。我认为你想要一个像 ARIMA 模型这样的东西,但这似乎有点“生成”数据(既延伸了数据的真实性,也延伸了你正在寻找的东西)。基本上,你怎么知道价值的变化与你预期的不同?如果它倒下而不是重复上坡怎么办? pd.DataFrame.interpolate 中的其他方法可能有一些用处,但这种插值是不确定的。
  • 我不是在生成数据,而是在预测它。你知道数据是否应该突然被删掉吗?这是一个业余项目,所以不需要过于准确。
  • 没有估算值,就没有值。只是 np.nan
  • 我首先想到的是天气数据,但它看起来像是某种财务数据。财务数据通常随随机游走而移动,并且本质上是不可预测的。
  • 我看过interpolate 方法。这看起来不错的样子。现在测试...谢谢。

标签: python pandas dataframe scikit-learn quandl


【解决方案1】:

感谢ifly6,我找到了解决办法。

只需将数据集设置为插值版本,如下所示:

data = df.interpolate()

简单!

【讨论】:

    猜你喜欢
    • 2016-09-02
    • 2023-04-06
    • 2018-09-03
    • 2022-01-07
    • 2016-10-24
    • 1970-01-01
    • 2020-09-27
    • 2016-04-04
    相关资源
    最近更新 更多