DevGang
Авторизоваться

Pandas: добавление строки в DataFrame

Модуль pandas предоставляет различные методы для добавления и удаления строк из фрейма данных. В этой статье мы обсудим различные способы добавления строки в кадр данных pandas с использованием метода append() и функции concat().

Метод Pandas append()

Мы используем метод append() для добавления объекта словаря, серии или фрейма данных к другому фрейму данных. Он имеет следующий синтаксис.

DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=False)

Здесь,

  • Параметр other принимает серию pandas, словарь или другой фрейм данных в качестве входного аргумента.
  • Мы используем параметр ignore_index, чтобы указать, хотим ли мы сохранить индекс исходных кадров данных. По умолчанию установлено значение False, что означает, что выходной фрейм данных содержит индексы из исходных фреймов данных. Чтобы сбросить индексы и создать новый индекс в выходном фрейме данных, вы можете установить для параметра ignore_index значение True.
  • Мы используем параметр verify_integrity, чтобы указать, хотим ли мы разрешить дублирование индексов в выходном кадре данных или нет. По умолчанию для параметра verify_integrity установлено значение False. Это означает, что выходной кадр данных может содержать повторяющиеся индексы. Чтобы запретить дублирование индексов, вы можете установить для параметра verify_integrity значение True.
  • Мы используем параметр sort, чтобы указать, хотим ли мы сортировать столбцы, если столбцы фреймов данных не выровнены.

После выполнения метод append() возвращает новый фрейм данных.

Добавить строку в верхней части фрейма данных Pandas

Чтобы добавить строку вверху фрейма данных, мы будем использовать метод append() и функцию DataFrame().

Предположим, что мы хотим добавить новый словарь Python в виде строки в существующий фрейм данных. Для этого мы будем использовать следующие шаги.

  1. Во-первых, мы поместим словарь, содержащий значения строк, в список.
  2. Далее мы создадим фрейм данных, используя список и функцию DataFrame(). Функция DataFrame() принимает список, содержащий словарь, в качестве входных данных и возвращает кадр данных после выполнения.
  3. Теперь мы вызовем метод append() для вновь созданного фрейма данных и передадим существующий фрейм данных в качестве входного аргумента.

После выполнения метода append() мы получим выходной фрейм данных с новой строкой, добавленной вверху. Вы можете наблюдать это на следующем примере.

import pandas as pd
myDicts=[{"Roll":1,"Maths":100, "Physics":80, "Chemistry": 90},
        {"Roll":2,"Maths":80, "Physics":100, "Chemistry": 90},
        {"Roll":3,"Maths":90, "Physics":80, "Chemistry": 70},
        {"Roll":4,"Maths":100, "Physics":100, "Chemistry": 90},
        {"Roll":5,"Maths":90, "Physics":90, "Chemistry": 80},
        {"Roll":6,"Maths":80, "Physics":70, "Chemistry": 70}]
df=pd.DataFrame(myDicts)
print("The original dataframe is:")
print(df)
newDict= {"Roll":11,"Maths":81, "Physics":74, "Chemistry": 93}
print("New row data is:")
print(newDict)
df1=pd.DataFrame([newDict])
df2=df1.append(df,ignore_index=True)
print("The output dataframe is:")
print(df2)

Выход:

The original dataframe is:
   Roll  Maths  Physics  Chemistry
0     1    100       80         90
1     2     80      100         90
2     3     90       80         70
3     4    100      100         90
4     5     90       90         80
5     6     80       70         70
New row data is:
{'Roll': 11, 'Maths': 81, 'Physics': 74, 'Chemistry': 93}
The output dataframe is:
   Roll  Maths  Physics  Chemistry
0    11     81       74         93
1     1    100       80         90
2     2     80      100         90
3     3     90       80         70
4     4    100      100         90
5     5     90       90         80
6     6     80       70         70

Метод append() будет объявлен устаревшим в следующих версиях pandas. Поэтому вы можете использовать функцию concat() для объединения кадров данных.

Pandas добавляет строку в верхнюю часть фрейма данных с помощью функции concat()

Функция contact() принимает список фреймов данных в качестве своего входного аргумента и объединяет их в один фрейм данных. Поскольку мы хотим добавить новую строку к существующему фрейму данных, мы передадим фрейм данных, содержащий новую строку, в качестве первого элемента и существующий фрейм данных в качестве второго элемента входного списка, функции concat().

После выполнения функции concat() мы получим желаемый выходной кадр данных, как показано ниже.

import pandas as pd
myDicts=[{"Roll":1,"Maths":100, "Physics":80, "Chemistry": 90},
        {"Roll":2,"Maths":80, "Physics":100, "Chemistry": 90},
        {"Roll":3,"Maths":90, "Physics":80, "Chemistry": 70},
        {"Roll":4,"Maths":100, "Physics":100, "Chemistry": 90},
        {"Roll":5,"Maths":90, "Physics":90, "Chemistry": 80},
        {"Roll":6,"Maths":80, "Physics":70, "Chemistry": 70}]
df=pd.DataFrame(myDicts)
print("The original dataframe is:")
print(df)
newDict= {"Roll":11,"Maths":81, "Physics":74, "Chemistry": 93}
print("New row data is:")
print(newDict)
df1=pd.DataFrame([newDict])
df2=pd.concat([df1,df],ignore_index=True)
print("The output dataframe is:")
print(df2)

Выход:

The original dataframe is:
   Roll  Maths  Physics  Chemistry
0     1    100       80         90
1     2     80      100         90
2     3     90       80         70
3     4    100      100         90
4     5     90       90         80
5     6     80       70         70
New row data is:
{'Roll': 11, 'Maths': 81, 'Physics': 74, 'Chemistry': 93}
The output dataframe is:
   Roll  Maths  Physics  Chemistry
0    11     81       74         93
1     1    100       80         90
2     2     80      100         90
3     3     90       80         70
4     4    100      100         90
5     5     90       90         80
6     6     80       70         70

В приведенных выше примерах мы добавили новую строку вверху фрейма данных, используя метод append() и метод concat() один за другим.

Добавьте строку в нижней части фрейма данных

Чтобы добавить строку внизу фрейма данных, нам просто нужно вызвать метод append() для исходного фрейма данных и передать словарь python, содержащий данные строки, в качестве входного аргумента. После выполнения метода append() мы получим желаемый выходной кадр данных, как показано ниже.

import pandas as pd
myDicts=[{"Roll":1,"Maths":100, "Physics":80, "Chemistry": 90},
        {"Roll":2,"Maths":80, "Physics":100, "Chemistry": 90},
        {"Roll":3,"Maths":90, "Physics":80, "Chemistry": 70},
        {"Roll":4,"Maths":100, "Physics":100, "Chemistry": 90},
        {"Roll":5,"Maths":90, "Physics":90, "Chemistry": 80},
        {"Roll":6,"Maths":80, "Physics":70, "Chemistry": 70}]
df=pd.DataFrame(myDicts)
print("The original dataframe is:")
print(df)
newDict= {"Roll":11,"Maths":81, "Physics":74, "Chemistry": 93}
print("New row data is:")
print(newDict)
df2=df.append(newDict,ignore_index=True)
print("The output dataframe is:")
print(df2)

Выход:

The original dataframe is:
   Roll  Maths  Physics  Chemistry
0     1    100       80         90
1     2     80      100         90
2     3     90       80         70
3     4    100      100         90
4     5     90       90         80
5     6     80       70         70
New row data is:
{'Roll': 11, 'Maths': 81, 'Physics': 74, 'Chemistry': 93}
The output dataframe is:
   Roll  Maths  Physics  Chemistry
0     1    100       80         90
1     2     80      100         90
2     3     90       80         70
3     4    100      100         90
4     5     90       90         80
5     6     80       70         70
6    11     81       74         93

При использовании метода append() в приведенном выше примере мы установили для параметра ignore_index значение True. Это необходимо, потому что метод append() вызовет ошибку, если мы этого не сделаем. При добавлении словаря в фрейм данных pandas с помощью метода append() вам всегда нужно устанавливать для параметра ignore_index значение True.

Pandas добавляет строку внизу кадра данных с помощью функции concat()

Чтобы добавить строку внизу фрейма данных с помощью функции contact(), вам сначала нужно создать фрейм данных из словаря, содержащего данные строки.

Затем вы можете передать существующий фрейм данных в качестве первого элемента и фрейм данных, содержащий новую строку, в качестве второго элемента списка ввода в функцию concat(). После выполнения функции concat() вы получите желаемый кадр данных, как показано в следующем примере.

import pandas as pd
myDicts=[{"Roll":1,"Maths":100, "Physics":80, "Chemistry": 90},
        {"Roll":2,"Maths":80, "Physics":100, "Chemistry": 90},
        {"Roll":3,"Maths":90, "Physics":80, "Chemistry": 70},
        {"Roll":4,"Maths":100, "Physics":100, "Chemistry": 90},
        {"Roll":5,"Maths":90, "Physics":90, "Chemistry": 80},
        {"Roll":6,"Maths":80, "Physics":70, "Chemistry": 70}]
df=pd.DataFrame(myDicts)
print("The original dataframe is:")
print(df)
newDict= {"Roll":11,"Maths":81, "Physics":74, "Chemistry": 93}
print("New row data is:")
print(newDict)
df1=pd.DataFrame([newDict])
df2=pd.concat([df,df1],ignore_index=True)
print("The output dataframe is:")
print(df2)

Выход:

The original dataframe is:
   Roll  Maths  Physics  Chemistry
0     1    100       80         90
1     2     80      100         90
2     3     90       80         70
3     4    100      100         90
4     5     90       90         80
5     6     80       70         70
New row data is:
{'Roll': 11, 'Maths': 81, 'Physics': 74, 'Chemistry': 93}
The output dataframe is:
   Roll  Maths  Physics  Chemistry
0     1    100       80         90
1     2     80      100         90
2     3     90       80         70
3     4    100      100         90
4     5     90       90         80
5     6     80       70         70
6    11     81       74         93

Как видно из приведенного выше вывода, мы добавили новую строку внизу существующего фрейма данных с помощью функции contact().

Теперь мы знаем, как добавить строку во фрейм данных.

#Python #Pandas
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу