如何在python数据框中提取丢失的数据点

问题描述

我想在python数据框中找到丢失的数据点。以下是数据框的示例。

enter image description here

对于此示例,缺少2020-06-19 11:48:35数据点。因此,我想查找所有丢失的数据点(丢失的秒数)。如何查找此数据框的丢失数据点。(数据点之间的正常间隔为一秒钟。如果缺少任何一秒钟,则希望将它们放到新的数据框中)。

我尝试了什么: 我试图使用折线图对其进行绘制,但要在该图表中找到丢失的数据点确实非常困难。也许创建一个缺少数据点的新数据框将是一个很好的解决方案

解决方法

您可以使用pd.date_rangedf.reindex

date_range = pd.date_range(df.time.min(),df.time.max(),freq='s')

df2 = df.set_index('time').reindex(date_range,fill_value=0)
df2 = df2.reset_index().rename(columns={'index': 'time'})
print(df2)

输出:

                 time  WindSpeed
0 2020-06-19 11:48:32       3.11
1 2020-06-19 11:48:33       3.37
2 2020-06-19 11:48:34       4.28
3 2020-06-19 11:48:35       0.00
4 2020-06-19 11:48:36       5.34
5 2020-06-19 11:48:37       5.87
,
# Generating sequence of timestamps,since start-date,with one second inteval
times = [((datetime.datetime(2017,7,17,9,10,0) + datetime.timedelta(seconds=1) * x).time()).strftime("%Y-%m-%d %H:%M:%S") for x in range(5)]

# Creating new data-frame with [ 'time','WindSpeed' ] columns,for each timestamp in sequence
missing_df = pd.DataFrame(data = {'time' : times,'WindSpeed' : [0] * len(times)})

# Filtering out timestamps existing in original dataframe using the `isin` function
missing_df = missing_df[~original_df.time.isin(times)]

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...