Серия Pandas добавляет индекс и значение в начало объекта серии

Я получил объект серии панд с индексом, начинающимся с '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

Как бы я добавил его в нужное место (т.е. в начало объекта серии)

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
760
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

При использовании .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()

@oakca - Похоже, вы забыли назначить обратно, добавлено в ответ.

jezrael 21.12.2020 12:54

к сожалению, sort_index() не работает, потому что: TypeError: '<' not supported between instances of 'str' and 'Timestamp'

oakca 21.12.2020 12:55

@oakca - nan не имеет DatetimeIndex, вам нужно его создать. ОТРЕДАКТИРОВАНО.

jezrael 21.12.2020 12:56

Другие вопросы по теме