[英]How to fill missing date and time in data-frame using pandas?
我有一個大數據集,下面給出了一個示例。 數據記錄 2 個月每天 1 小時間隔 24 小時。
某些行中缺少時間和日期信息,如下所示:
Date Open High Low Close
2021-12-03 00:00:00 1.13060 1.13076 1.13008 1.13012
2021-12-03 01:00:00 1.13013 1.13023 1.12908 1.12990
2021-12-03 02:00:00 1.12988 1.12995 1.12925 1.12952
2021-12-03 03:00:00 1.12955 1.13013 1.12930 1.12942
2021-12-03 04:00:00 1.12942 1.13000 1.12930 1.12975
2021-12-03 05:00:00 1.12978 1.13025 1.12965 1.12993
2021-12-03 06:00:00 1.12992 1.13000 1.12824 1.12832
2021-12-03 07:00:00 1.12832 1.12939 1.12818 1.12923
2021-12-03 08:00:00 1.12925 1.12998 1.12852 1.12911
2021-12-03 09:00:00 1.12911 1.12981 1.12858 1.12976
2021-12-03 10:00:00 1.12977 1.13146 1.12950 1.13082
2021-12-03 11:00:00 1.13084 1.13162 1.13015 1.13088
2021-12-03 12:00:00 1.13088 1.13135 1.12946 1.12965
2021-12-03 13:00:00 1.12966 1.13339 1.12882 1.13102
2021-12-03 14:00:00 1.13100 1.13107 1.12844 1.12925
2021-12-03 15:00:00 1.12923 1.12929 1.12665 1.12792
2021-12-03 16:00:00 1.12793 1.13100 1.12768 1.13093
2021-12-03 17:00:00 1.13092 1.13145 1.13012 1.13110
2021-12-03 18:00:00 1.13105 1.13275 1.13080 1.13245
2021-12-03 19:00:00 1.13247 1.13268 1.13118 1.13120
2021-12-03 20:00:00 1.13120 1.13152 1.13012 1.13093
2021-12-03 21:00:00 1.13092 1.13183 1.13065 1.13155
2021-12-05 22:00:00 1.13060 1.13160 1.13040 1.13096
2021-12-05 23:00:00 1.13101 1.13138 1.13015 1.13042
正如您在上面的 dataframe 中看到的, 2021-12-03 21:00:00
是最后一條記錄,我沒有接下來 3 小時的數據。 日期2021-12-04
的數據全天(每小時)完全缺失。 所以我想通過取相應列的平均值來填充這些數據,然后用它替換。 我們如何使用 pandas 添加它?
您可以使用pd.date_range
生成所需的日期范圍。 然后你應該用生成的日期reindex
。 在reindex
中,您應該使用列的平均值設置fill
參數。 利用:
import pandas as pd
import numpy as np
df = pd.DataFrame({'Date': ['2021-12-03 00:00:00', '2021-12-06 22:00:00'], 'open': [1.13092, 1.13060]})
idx = pd.date_range('2021-12-03', '2021-12-05', freq = '1H')
df.index = pd.DatetimeIndex(df.Date)
val = np.mean(df['open'])
df = df.reindex(idx, fill_value=val)
del df['Date']
output:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.