【问题标题】:how to complete missing data in a dataframe如何完成数据框中的缺失数据
【发布时间】:2022-08-22 12:55:13
【问题描述】:

我正在使用 API 下载实时股市数据。 这些信息很多时候是不完整的。 例如;

                                 Open        High         Low       Close   Adj Close   Volume
Datetime
2022-02-16 15:00:00-05:00  172.872101  173.029999  172.839996  172.910004  172.910004        0
2022-02-16 15:01:00-05:00  172.899994  172.949997  172.779999  172.815002  172.815002   160249
2022-02-16 15:04:00-05:00  173.089996  173.320007  173.030106  173.315002  173.315002   311095
2022-02-16 15:05:00-05:00  173.320007  173.339996  173.164993  173.214996  173.214996   174639
2022-02-16 15:07:00-05:00  173.139999  173.179993  173.089996  173.160004  173.160004   135559

从时间戳可以看出,它跳过了很多信息

我的问题是: 有没有办法完成丢失的数据以实现这样的目标?

                                 Open        High         Low       Close   Adj Close   Volume
Datetime
2022-02-16 15:00:00-05:00  172.872101  173.029999  172.839996  172.910004  172.910004        0
2022-02-16 15:01:00-05:00  172.899994  172.949997  172.779999  172.815002  172.815002   160249
2022-02-16 15:02:00-05:00  172.809998  172.990005  172.809998  172.979996  172.979996   119117
2022-02-16 15:03:00-05:00  172.970001  173.169998  172.964996  173.080093  173.080093   264624
2022-02-16 15:04:00-05:00  173.089996  173.320007  173.030106  173.315002  173.315002   311095
2022-02-16 15:05:00-05:00  173.320007  173.339996  173.164993  173.214996  173.214996   174639
2022-02-16 15:06:00-05:00  173.220001  173.220001  173.080002  173.139999  173.139999   124707
2022-02-16 15:07:00-05:00  173.139999  173.179993  173.089996  173.160004  173.160004   135559
  • 你试过填充吗?另一个想法是从每日重新采样到每周或每月聚合。如果你不喜欢填充而不是使用插值
  • Asfreq 可能是一种选择

标签: python pandas dataframe yfinance


【解决方案1】:

重新采样到 1 分钟,然后插入以填充 NaN 值

df = df.resample('1T').interpolate(method='linear', limit_direction='forward', axis=0)

【讨论】:

    【解决方案2】:

    如何使用简单的算术平均并考虑 NaN 来完成缺失的数据。要填写的栏目是“VILLARTEAGA”。对不起,我是新来的。

    from sklearn.impute import SimpleImputer
    import numpy as np
    X = dfTDia.iloc[:, 2].values
    imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
    imputer = imputer.fit(X)
    X = imputer.transform(X)
    X
    

    【讨论】:

      【解决方案3】:

      有很多方法可以做到这一点。浏览整个博客。 https://towardsdatascience.com/6-different-ways-to-compensate-for-missing-values-data-imputation-with-examples-6022d9ca0779

      1. 如果您有足够的数据进行训练,请删除缺失的数据。
      2. 使用博客中的技术添加数据。

      【讨论】:

        猜你喜欢
        • 2017-02-19
        • 2016-11-10
        • 1970-01-01
        • 2019-11-04
        • 2021-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多