Я хочу создать мультииндекс на основе дат и времени из моего DataFrame - df.
Это на самом деле работает, и indexed
возвращает правильный мультииндекс (непрерывные даты с 10.02.2017 до 31.03.2017 с непрерывным временем)с 08:00:00 до 21:55:00 за 5 минут).
Проблема в том, что у моего набора данных нет полных наблюдений.Значит, на случайный день могут отсутствовать наблюдения за 08:05:00 до 08:40:00.Мой мультииндекс имеет длину 20496, а мой DataFrame - 20486.
Когда я хочу объединить индекс с моими DataFrame
, все наблюдения равны NAN
.Кто-нибудь сейчас как слить мультииндекс с моим начальным DataFrame - df
?
df = pd.read_csv(file_name, parse_dates=[0],
index_col=0, sep=',')
df['Date'] = df.index.date
df['Time'] = df.index.time
df['Time'] = df['Time'].astype(str)
df = df[df['Time'] != '22:00:00']
list_date = set(df['Date'])
list_time = set(df['Time'])
list_date = sorted(list_date)
list_time = sorted(list_time)
iterables = [list_date, list_time]
indexed = pd.MultiIndex.from_product(iterables,
names=['date', 'time'])
df_new = pd.DataFrame(df, index=indexed)
df
вывод:
r2 var_v2x Date Time
TIME1
2017-10-02 08:00:00 NaN 0.00008784 2017-10-02 08:00:00
2017-10-02 08:05:00 0.00000000 0.00008784 2017-10-02 08:05:00
2017-10-02 08:10:00 0.00000008 0.00008784 2017-10-02 08:10:00