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

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

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

Синтаксис

Ниже приводится синтаксис функции DataFrame.appen().

mydataframe = mydataframe.append(new_row, ignore_index=True)

Где, полученный DataFrame содержит new_row, добавленный в mydataframe.

append() не изменяет DataFrame, но возвращает новый с добавленной строкой.

Пример 1

В этом примере мы создадим DataFrame и добавим новую строку. Она инициализируется как словарь Python, а функция append() используется для добавления строки.

Когда вы добавляете словарь Python в append(), убедитесь, что вы передаете ignore_index = True.

Метод append() возвращает DataFrame с вновь добавленной строкой.

import pandas as pd

data = {'name': ['Somu', 'Kiku', 'Amol', 'Lini'],
	'physics': [68, 74, 77, 78],
	'chemistry': [84, 56, 73, 69],
	'algebra': [78, 88, 82, 87]}

	
#create dataframe
df_marks = pd.DataFrame(data)
print('Original DataFrame\n------------------')
print(df_marks)

new_row = {'name':'Geo', 'physics':87, 'chemistry':92, 'algebra':97}
#append row to the dataframe
df_marks = df_marks.append(new_row, ignore_index=True)

print('\n\nNew row added to DataFrame\n--------------------------')
print(df_marks)

Запустите указанную выше программу Python, и вы увидите исходный DataFrame, к которому добавлена новая строка.

Original DataFrame
------------------
   name  physics  chemistry  algebra
0  Somu       68         84       78
1  Kiku       74         56       88
2  Amol       77         73       82
3  Lini       78         69       87


New row added to DataFrame
--------------------------
   name  physics  chemistry  algebra
0  Somu       68         84       78
1  Kiku       74         56       88
2  Amol       77         73       82
3  Lini       78         69       87
4   Geo       87         92       97

Пример 2

Если вы не укажете параметр ignoreIndex = False, вы получите TypeError.

В следующем примере мы попытаемся добавить строку в DataFrame с параметром ignoreIndex = False.

import pandas as pd

data = {'name': ['Amol', 'Lini'],
	'physics': [77, 78],
	'chemistry': [73, 85]}

#create dataframe
df_marks = pd.DataFrame(data)
print('Original DataFrame\n------------------')
print(df_marks)

new_row = {'name':'Geo', 'physics':87, 'chemistry':92}
#append row to the dataframe
df_marks = df_marks.append(new_row, ignore_index=False)

print('\n\nNew row added to DataFrame\n--------------------------')
print(df_marks)

Вывод:

Original DataFrame
------------------
   name  physics  chemistry
0  Amol       77         73
1  Lini       78         85
Traceback (most recent call last):
  File "example1.py", line 14, in <module>
    df_marks = df_marks.append(new_row, ignore_index=False)
  File "C:\Users\PythonExamples\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\frame.py", line 6658, in append
    raise TypeError('Can only append a Series if ignore_index=True'
TypeError: Can only append a Series if ignore_index=True or if the Series has a name

Как говорится в сообщении об ошибке, нам нужно либо предоставить параметр ignore_index = True, либо добавить строку, то есть Series, с именем.

Мы уже видели в примере 1, как добавить строку в DataFrame с ignore_index = True. Теперь посмотрим, как добавить строку с ignore_index = False.

import pandas as pd

data = {'name': ['Amol', 'Lini'],
	'physics': [77, 78],
	'chemistry': [73, 85]}

#create dataframe
df_marks = pd.DataFrame(data)
print('Original DataFrame\n------------------')
print(df_marks)

new_row = pd.Series(data={'name':'Geo', 'physics':87, 'chemistry':92}, name='x')
#append row to the dataframe
df_marks = df_marks.append(new_row, ignore_index=False)

print('\n\nNew row added to DataFrame\n--------------------------')
print(df_marks)

Мы назвали серию данными. Поэтому ignore_index = False не возвращает TypeError, и строка добавляется к DataFrame.

Вывод:

Original DataFrame
------------------
   name  physics  chemistry
0  Amol       77         73
1  Lini       78         85


New row added to DataFrame
--------------------------
   name  physics  chemistry
0  Amol       77         73
1  Lini       78         85
x   Geo       87         92

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *