Сдвинуть все строки датафрейма на +1 к индексу. Чтобы верхняя строка осталась пустой

У меня есть датафрейм Есть ли возможность перенести все данные датафрейма на один индекс ниже(Без удаления данных), чтобы нулевой индекся стал пустым или заполненным(Nan) для дальнейшей работы с ним?

Изначальный датафрейм

введите сюда описание изображения

Ниже пример того, как хотелось бы, чтобы это выгляделовведите сюда описание изображения


Ответы (3 шт):

Автор решения: David

Получилось выкрутиться так. Создал пустой датафрейм с теми же колоннами, и нужной мне строкой и соединил с помощью df = pd.concat([df1, df2]).

→ Ссылка
Автор решения: CrazyElf

У меня получилось как-то длинновато, наверное, можно короче:

import pandas as pd

df = pd.DataFrame({'Name': ['aaa','bbb','ccc'], 'Age': [10,15,20]})
df.index = df.index + 1
df.loc[0] = {}
df.sort_index(inplace=True)
df

Вывод:

    Name  Age
0   NaN   NaN
1   aaa   10.0
2   bbb   15.0
3   ccc   20.0

Можно добавить и словарь со значениями-пробелами, но мне не очень понятно, у вас Age - строка или число? По-нормальному там должно быть число, а в столбец с числами вы пробел добавить не сможете. Ну и столбец с NaNпо старой традиции Pandas превратился в float тут. Всё это решаемо в определённых пределах, но суть действий, я надеюсь, понятна.

Основное тут то, что можно добавить строку в DataFrame через .loc[index], указав index, которого нет в DataFrame. Остальное тут - перенумерация и сортировка индекса.

→ Ссылка
Автор решения: MaxU

Воспользуйтесь методом DataFrame.append():

res = (pd.DataFrame([[np.nan] * df.shape[1]], columns=df.columns)
         .append(df, ignore_index=True))

результат:

In [24]: res
Out[24]:
  Name   Age
0  NaN   NaN
1  aaa  10.0
2  bbb  15.0
3  ccc  20.0
→ Ссылка