如何解决如何在python数据框中提取丢失的数据点
我想在python数据框中找到丢失的数据点。以下是数据框的示例。
对于此示例,缺少2020-06-19 11:48:35数据点。因此,我想查找所有丢失的数据点(丢失的秒数)。如何查找此数据框的丢失数据点。(数据点之间的正常间隔为一秒钟。如果缺少任何一秒钟,则希望将它们放到新的数据框中)。
我尝试了什么: 我试图使用折线图对其进行绘制,但要在该图表中找到丢失的数据点确实非常困难。也许创建一个缺少数据点的新数据框将是一个很好的解决方案
解决方法
您可以使用pd.date_range和df.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)]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。