# Как добавить/вставить строку в DataFrame Pandas

В этом уроке **вы узнаете, как добавить (или вставить) строку в Pandas DataFrame**. Вы узнаете, как добавить одну строку, несколько строк и на конкретные позиции. Вы также узнаете, как добавить строку, используя список, Series и словарь.

К концу этого урока вы научитесь:

* Различные способы добавления одной и нескольких строк в DataFrame Pandas
* Как вставить строку в определенные позиции, например вверху или внизу, таблицы данных Pandas
* Как добавлять строки с помощью списков, серий Pandas и словарей

Оглавление

* [Загрузка образца DataFrame Pandas](#zagruzka-obrazca-dataframe-pandas)
* [Добавьте строку в DataFrame Pandas](#dobavlenie-stroki-v-dataframe-pandas-s-ispolzovaniem-slovarya)
* [Вставка строки в начало DataFrame Pandas](#vstavka-stroki-v-nachalo-dataframe-pandas)
* [Вставьте строку в таблицу данных Pandas по определенному индексу](#vstavka-stroki-v-pandas-dataframe-po-opredelennomu-indeksu)
* [Вставка нескольких строк в фрейм данных Pandas](#vstavka-neskolkikh-strok-v-dataframe-pandas)
* [Заключение](#zaklyuchenie)
* [Дополнительные ресурсы](#dopolnitelnye-resursy)

### Загрузка образца DataFrame Pandas

Для пошагового выполнения данного руководства вы можете скопировать ниже приведенный код в ваш любимый редактор кода. Если у вас есть собственные данные, вы можете использовать их (хотя результаты, конечно, будут отличаться):

```python
# Loading a Sample Pandas DataFrame
import pandas as pd

df = pd.DataFrame.from_dict({
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra'],
    'Age': [31, 30, 40, 33],
    'Location': ['Toronto', 'London', 'Kingston', 'Hamilton']
})

print(df)

# Returns:
#    Name  Age  Location
# 0   Nik   31   Toronto
# 1  Kate   30    London
# 2  Evan   40  Kingston
# 3  Kyra   33  Hamilton
```

У нас есть четыре записи и три разные колонки, содержащие Имя, Возраст и Местоположение человека.

Самый простой способ добавить или вставить новую строку в DataFrame Pandas — использовать функцию Pandas `.concat()`. Чтобы узнать больше о работе этих функций, [ознакомьтесь с моей подробной статьей здесь](https://datagy.io/pandas-merge-concat/). В этом разделе вы узнаете три разных способа добавить одну строку в DataFrame Pandas.

#### Добавление строки в DataFrame Pandas с использованием словаря

Предположим, что мы хотим добавить новую строку с следующими данными: `{'Name':'Jane', 'Age':25, 'Location':'Madrid'}`.

Мы могли бы просто написать:

```python
new_record = pd.DataFrame([{'Name':'Jane', 'Age':25, 'Location':'Madrid'}])
df = pd.concat([df, new_record], ignore_index=True)

print(df)

# Returns:
#    Name  Age  Location
# 0   Nik   31   Toronto
# 1  Kate   30    London
# 2  Evan   40  Kingston
# 3  Kyra   33  Hamilton
# 4  Jane   25    Madrid
```

В приведенном выше примере мы смогли добавить новую строку в DataFrame, используя словарь. Поскольку мы передали словарь, нам нужно было указать аргумент `ignore_index=True`&#x20;

#### Добавление строки в Pandas DataFrame с использованием списка

Чтобы добавить список в DataFrame в Pandas, нужно использовать аксессор `loc`, так как просто использовать функцию `.append()` недостаточно. Для этого необходимо использовать длину DataFrame в качестве метки для нашего аксессора `loc`. Это создаст новую строку, как показано ниже:

```python
df.loc[len(df)] = ['Jane', 25, 'Madrid']
print(df)

# Returns:
#    Name  Age  Location
# 0   Nik   31   Toronto
# 1  Kate   30    London
# 2  Evan   40  Kingston
# 3  Kyra   33  Hamilton
# 4  Jane   25    Madrid
```

Как забавное отклонение: использование `iloc` более сложно, так как требует, чтобы позиция индекса уже существовала – это означает, что нам нужно либо сначала добавить пустую строку, либо перезаписать данные.

### Вставка строки в начало DataFrame Pandas

Добавление строки в начало DataFrame в Pandas достаточно просто: мы просто меняем местами действия, которые вы узнали ранее. То есть, мы добавляем большой DataFrame к новой строке.

Однако сначала мы должны создать DataFrame. Мы можем сделать это, используя класс `pd.DataFrame()`. Давайте рассмотрим:

```python
# Add a new record at the top of a DataFrame
new_record = pd.DataFrame([['Jane', 25, 'Madrid']], columns=df.columns)
df = pd.concat([new_record, df], ignore_index=True)
print(df)

# Returns:
#    Name  Age  Location
# 0  Jane   25    Madrid
# 0   Nik   31   Toronto
# 1  Kate   30    London
# 2  Evan   40  Kingston
# 3  Kyra   33  Hamilton
```

### Вставка строки в Pandas DataFrame по определенному индексу

Добавление строки в определённый индекс немного отличается. Как показано в примере с использованием списков, нужно использовать аксессор `loc`. Однако вставка строки на данном индексе только перезапишет его. Вместо этого мы можем передать значение, близкое к тому месту, где мы хотим вставить новую строку.

Например, если у нас есть текущие индексы от 0 до 3, и мы хотим вставить новую строку на индекс 2, мы можем просто присвоить ей индекс 1.5. Давайте посмотрим, как это работает:

```python
# Inserting a Row at a Specific Index
df.loc[1.5] = ['Jane', 25, 'Madrid']
df = df.sort_index().reset_index(drop=True)

print(df)

# Returns:
#    Name  Age  Location
# 0   Nik   31   Toronto
# 1  Kate   30    London
# 2  Jane   25    Madrid
# 3  Evan   40  Kingston
# 4  Kyra   33  Hamilton
```

Это, конечно, делает несколько предположений:

1. Ваш индекс начинается с 0. Соответственно, измените ваш индекс `loc`, если это не так.
2. Ваш индекс _может_ быть изменен таким образом. Если ваш индекс имеет более важное значение, это может быть не так.

### Вставка нескольких строк в DataFrame Pandas

Добавление нескольких строк в DataFrame Pandas аналогично процессу добавления одной строки. Тем не менее, это может быть намного быстрее, так как мы можем передать все элементы сразу. Например, если мы добавляем элементы с помощью словаря, то мы можем добавить их в виде списка словарей.

Давайте рассмотрим пример:

```python
# Adding multiple rows to a Pandas DataFrame
new_rows = pd.DataFrame([{'Name': 'Jane', 'Age': 25, 'Location': 'Madrid'}, {'Name': 'Mel', 'Age': 23, 'Location':'New York'}])
df = pd.concat([df, new_rows], ignore_index=True)

print(df)

# Returns:
#    Name  Age  Location
# 0   Nik   31   Toronto
# 1  Kate   30    London
# 2  Evan   40  Kingston
# 3  Kyra   33  Hamilton
# 4  Jane   25    Madrid
# 5   Mel   23  New York
```

### Заключение

В этом учебнике вы узнали, как добавлять и вставлять строки в DataFrame Pandas. Вы узнали несколько различных методов для этого, включая использование словарей, списков и Pandas Series. Вы также узнали, как вставлять новые строки в начало, конец и в определенный индекс. Наконец, вы узнали, как добавлять несколько строк в DataFrame Pandas одновременно.

### Дополнительные ресурсы

Чтобы узнать больше о связанных темах, ознакомьтесь с учебными материалами ниже:

* Создайте пустой фрейм данных Pandas и добавьте данные
* Pandas: получите номер строки из таблицы данных
* Pandas: как удалить столбец индекса Dataframe
* Как перетасовать строки данных Pandas в Python
