Я получил объект серии панд с индексом, начинающимся с '2020-01-01 01:00:00+00:00'
до 2020-12-19
. Я хотел бы добавить индекс '2020-01-01 00:00:00+00:00'
со значением np.nan
.
data_dict[i]
date_time
2020-01-01 01:00:00+00:00 13
2020-01-01 02:00:00+00:00 13
2020-01-01 03:00:00+00:00 13
2020-01-01 04:00:00+00:00 13
2020-01-01 05:00:00+00:00 13
...
2020-12-18 20:00:00+00:00 25
2020-12-18 21:00:00+00:00 25
2020-12-18 22:00:00+00:00 25
2020-12-18 23:00:00+00:00 25
2020-12-19 00:00:00+00:00 20
Когда я использую:
nan = pd.Series([np.nan], index=['2020-01-01 00:00:00+00:00'])
data_dict[i].append(nan)
data_dict[i].sort_index()
вроде ничего не происходит?
data_dict[i]
date_time
2020-01-01 01:00:00+00:00 13
2020-01-01 02:00:00+00:00 13
2020-01-01 03:00:00+00:00 13
2020-01-01 04:00:00+00:00 13
2020-01-01 05:00:00+00:00 13
...
2020-12-18 21:00:00+00:00 25
2020-12-18 22:00:00+00:00 25
2020-12-18 23:00:00+00:00 25
2020-12-19 00:00:00+00:00 20
Как бы я добавил его в нужное место (т.е. в начало объекта серии)
При использовании .append
новые данные добавляются в конец Series
, для правильного порядка значений сортировки DatetimeIndex
:
s = s1.append(s2).sort_index()
Если нужно добавить в начало Series
, поменяйте местами - добавьте второй Series
к первому:
s = s2.append(s1)
Обновлено: здесь необходимо вернуть Series.append
и создать DatetimeIndex
в добавленной серии:
nan = pd.Series([np.nan], index=pd.to_datetime(['2020-01-01 00:00:00+00:00']))
data_dict[i] = data_dict[i].append(nan)
data_dict[i] = data_dict[i].sort_index()
к сожалению, sort_index() не работает, потому что: TypeError: '<' not supported between instances of 'str' and 'Timestamp'
@oakca - nan
не имеет DatetimeIndex, вам нужно его создать. ОТРЕДАКТИРОВАНО.
@oakca - Похоже, вы забыли назначить обратно, добавлено в ответ.