如何补全数据框中缺失的数据
how to complete missing data in a dataframe
我正在使用 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
有很多方法可以做到这一点。浏览整个博客。
https://towardsdatascience.com/6-different-ways-to-compensate-for-missing-values-data-imputation-with-examples-6022d9ca0779
- 如果您有足够的数据进行训练,请删除缺失的数据。
- 使用博客中的技术添加数据。
以 1 分钟为周期重新采样,然后进行插值以填充 NaN 值
df = df.resample('1T').interpolate(method='linear', limit_direction='forward', axis=0)
我正在使用 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
有很多方法可以做到这一点。浏览整个博客。 https://towardsdatascience.com/6-different-ways-to-compensate-for-missing-values-data-imputation-with-examples-6022d9ca0779
- 如果您有足够的数据进行训练,请删除缺失的数据。
- 使用博客中的技术添加数据。
以 1 分钟为周期重新采样,然后进行插值以填充 NaN 值
df = df.resample('1T').interpolate(method='linear', limit_direction='forward', axis=0)