数据框:我有一个日期时间索引,但它每天都缺少17:00。我每天如何添加额外的yyyy-mm-dd 17:00
行?
说我是否有
price
2017-01-01 16:55 1.2
2017-01-01 17:05 2.3
2017-01-01 17:10 3.4
.
.
.
2019-01-01 16:55 23
2019-01-01 17:05 29
2019-01-01 17:10 20
我想在17:00用NaNs
添加行,以便拥有
2017-01-01 16:55 1.2
2017-01-01 17:00 NaN
2017-01-01 17:05 2.3
2017-01-01 17:10 3.4
答案 0 :(得分:1)
使用reindex
:
from io import StringIO
# sample data
s = """date_time,price
2017-01-01 16:55,1.2
2017-01-01 17:05,2.3
2017-01-01 17:10,3.4"""
df = pd.read_csv(StringIO(s))
df['date_time'] = pd.to_datetime(df['date_time'])
df = df.set_index('date_time')
# create a date range with the index min and max and set to whatever freq you would like
new_idx = pd.date_range(df.index.min(), df.index.max(), freq='5T')
df.reindex(new_idx)
price
2017-01-01 16:55:00 1.2
2017-01-01 17:00:00 NaN
2017-01-01 17:05:00 2.3
2017-01-01 17:10:00 3.4
答案 1 :(得分:0)
由于您有不同的date
,这里将需要groupby
,而我正在使用resample
df.groupby(df.index.date).apply(lambda x : x.resample('5 min').mean()).reset_index(level=0,drop=True)
Out[13]:
price
date_time
2017-01-01 16:55:00 1.2
2017-01-01 17:00:00 NaN
2017-01-01 17:05:00 2.3
2017-01-01 17:10:00 3.4