Чтобы добавить или вставить строку в 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.