在其小时间隔内填充得到的日分类?熊猫Python



我试图用一整天的分类填充一个小时间隔的DataFrame,你可以复制/粘贴代码,它应该运行:

import pandas as pd
from datetime import timedelta, date
column2 = [1, 2, 3, 4, 7, 8, 9, 10]
column1 = [item for item in range(1, 74)]
column3 = pd.date_range('1998-01-01 00:00', freq='h', periods=73, tz ='Etc/GMT+0' )
column4 = ['1998-01-01 00:00:00', '1998-01-01 01:00:00', '1998-01-01 02:00:00', '1998-01-01 03:00:00 ', 
'1998-01-01 06:00:00', '1998-01-01 07:00:00', '1998-01-01 08:00:00', '1998-01-01 09:00:00']
column5 = ['1998-01-01', '1998-01-02', '1998-01-03']
column6 = ['Overcast', 'Clear', 'High']
dtst_1 = pd.DataFrame()
dtst_1['column1'] = column1
dtst_1.set_index(column3, inplace=True)
dtst_2 = pd.DataFrame()
dtst_2['column2'] = column2
dtst_2['column4'] = column4
dtst_2['column4'] = pd.to_datetime(dtst_2['column4'])
dtst_2.set_index('column4', inplace=True)
dtst_3 = pd.DataFrame()
dtst_3['column6'] = column6
dtst_3['column5'] = column5
dtst_3['column5'] = pd.to_datetime(dtst_3['column5'])
dtst_3.set_index('column5', inplace=True)

dtst_2.index = pd.to_datetime(dtst_2.index).tz_localize('Etc/GMT+0')
dtst_3.index = pd.to_datetime(dtst_3.index).tz_localize('Etc/GMT+0')
dtst_2 = dtst_2.merge(dtst_1['colum1'], how = 'right', left_index=True, right_index=True)
def daterange_tst(start_date_tst, end_date_tst):
for n in range(int ((end_date_tst - start_date_tst).days)):
yield start_date_tst + timedelta(n)
start_date_tst = date(1998, 1, 1)
end_date_tst = date(1998, 1, 2)
for single_date_tst in daterange_tst(start_date_tst, end_date_tst):
print(single_date_tst)
dtst_2 = dtst_2.join(dtst_3['column6'], how = 'outer')
dtst_2.head(49)

你应该看到这样的结果:

dataframe

有没有办法用日分类来填补第6列中的NaN空白?(第一天用阴天填充,第二天用晴朗填充…等等…?当然,假设这只是一个庞大数据集的一小部分,那么是否有办法将分类日期插入到当天的小时内范围中呢?非常感谢。

这就是你想要做的吗?

dtst_2['column6'].ffill(inplace=True)

最新更新