Метод append () Pandas DataFrame используется для добавления строк одного DataFrame в конец другого DataFrame. После добавления он возвращает новый объект DataFrame. Функция append () не изменяет исходный или исходный DataFrame. Столбцы, которых нет в первом DataFrame, добавляются в добавленный DataFrame, а новые ячейки заполняются значением NaN.
Функция append () DataFrame присутствует в библиотеке Pandas (), которая — отличная библиотека, которая позволяет пользователю эффективно и действенно выполнять анализ данных.
- Понимание Pandas DataFrame append ()
- DataFrame. append (other, ignore_index = False, verify_integrity = False, sort = None) Параметры Функция append () имеет 5 параметров. other: это DataFrame или серию. ignore_index: если этот параметр имеет значение true, не используйте метки индекса. verify_integrity: это тоже логическое значение, и по умолчанию оно ложно. Если true, при создании индекса с дубликатами возникает ошибка ValueError. sort: сортирует все столбцы, если столбцы self и other не выровнены. Возвращаемое значение df Функция .append () возвращает добавленный DataFrame. Пример программы на Pandas DataFrame append () Напишите программу, чтобы показать работу метода append () в Python. импортировать панды как pddata_set1 = {'Name': ['Rohit', 'Mohit', 'Sohit', 'Arun', 'Shubh'], 'Roll no': ['01', '02', '03', '04', '05'], 'maths': ['93', '63', ' 74 ',' 94 ',' 83 '],' science ': [' 88 ',' 55 ',' 66 ',' 94 ',' 35 '],' english ': [' 93 ',' 74 ' , '84', '92', '87']} data_set2 = {'Name': ['Karan', 'Rishu', 'Swetank', 'Rishabh', 'Shuvam'], 'Roll no': [' 06, 07, 08, 09, 10], математика: [95, 62, 64, 14, 63], наука: ['58', '59', '86', '74', '55'], 'english': ['96', '77', '89', '42', '87']} # Изменение приведенный выше словарь в dataframedf1 = pd.DataFrame (data_set1) df2 = pd.DataFrame (data_set2) print ("df1: n", df1, " n ndf2: n", df2) print (" nAppended Dataframe: n ") print (df1.append (df2)) Вывод df1: Name Roll no maths science english0 Rohit 01 93 88 931 Мохит 02 63 55 742 Сохит 03 74 66 843 Арун 04 94 94924 Шубх 05 83 35 87df2: Имя Ролл без математики наука английский 0 Каран 06 95 58 961 Ришу 07 62 59 772 Света nk 08 64 86893 Ришаб 09 14 74 424 Шувам 10 63 55 87 Прилагаемый фрейм данных: Имя Ролик без математики наука английский0 Рохит 01 93 88 931 Мохит 02 63 55 742 Сохит 03 74 66 843 Арун 04 94 94924 Шубх 05 83 35 870 Каран 06 95 58 961 Ришу 07 62 59 772 Светанк 08 64 86 893 Ришаб 09 14 74 424 Шувам 10 63 55 87 В приведенном выше примере мы создали два DataFrame и распечатал этот DataFrame. Затем мы использовали функцию append () для добавления данных обоих DataFrames, а затем распечатали данные. Добавить данные двух такие фреймы данных, к которым добавлен DataFrame с некоторыми значениями NaN. См. следующий код. импортировать панды как pddataframe1 = pd.DataFrame ({" Col1 ": [1, 2, 3]," Col2 ": [4, 5, 6]}) dataframe2 = pd.DataFrame ({" Col1 ": [1, 2, 3, 4]," Col2 ": [ 5, 6, 7, 8], "Col3": [3, 5, 6, 7]}) dataframe3 = dataframe1.append (dataframe2, ignore_index = True, sort = False) print (dataframe3) Вывод Col1 Col2 Col30 1 4 NaN1 2 5 NaN2 3 6 NaN3 1 5 3,04 2 6 5,05 3 7 6,06 4 8 7,0 Здесь мы создали два фрейма данных. В первом DataFrame у нас есть 2 столбца, а во вторых 3 столбца. Следовательно, когда мы добавляем, значения col 3 будут NaN для первых нескольких строк, поскольку значения col3 не представлены в первом DataFrame. Повышение значения ValueError для повторяющихся индексов. Мы можем передать verify_integrity = True в вызвать ValueError, если в двух объектах DataFrame есть повторяющиеся индексы. импортировать панды как pddf1 = pd.DataFrame ({'Name': ['Krunal' , 'Анкит'], 'ID': [11, 21]}) df2 = pd.DataFrame ({'Имя': ['Нива', 'Манси'], 'ID': [19, 46]}) df3 = df1.append (df2, verify_integrity = True) Вывод Traceback (последний вызов последним): приложение "Файл" .py ", строка 6, в файле df3 = df1.append (df2, verify_integrity = True)"/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/ core/frame.py ", строка 7081, в добавлении return concat (Файл"/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core/reshape/concat.py " , строка 271, в concat op = _Concatenator (File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core /reshape/concat.py ", строка 452, в файле __init__ self.new_axes = self._get_new_axes ()"/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core /reshape/concat.py ", строка 515, в _get_new_axes return [File"/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core/reshape/concat.py » , строка 516, в self._get_concat_axis () if i == self.axis else self._get_comb_axis (i) File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site- packages/pandas/core/reshape/concat.py ", строка 572, в файле _get_concat_axis self._maybe_check_integrity (concat_axis)"/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas /core/reshape/concat.py ", строка 580, в _maybe_check_integrity поднять ValueError (ValueError: индексы имеют перекрывающиеся значения: Int64Index ([0, 1], dtype = 'int64') В на выходе вы можете увидеть, что ValueError: индексы имеют перекрывающиеся значения: Int64Index ([0, 1], dtype = ‘int64’). Теперь давайте посмотрим на другой пример, в котором у нас нет повторяющихся индексов. импортировать панды как pddataframe1 = pd.DataFrame ({"Col1": [1, 2, 3], "Col2": [4, 5, 6]}) dataframe2 = pd.DataFrame ({"Col1": [7, 8, 9], " Col2 ": [10, 11, 12]}) dataframe3 = dataframe1.append (dataframe2, ignore_index = True, sort = False) print (dataframe3) Вывод Col1 Col20 1 41 2 52 3 63 7 104 8 115 9 12 Вы можете видеть, что col1 и col2 объединяются в dataframe3. Добавление объектов DataFrame с несовпадающими столбцами импортировать панды как pddf1 = pd. DataFrame ({'Имя': ['Крунал', 'Симпсон'], 'ID': [1, 2]}) df2 = pd.DataFrame ({'Имя': ['Крунал', 'Гомер'], ' ID ': [3, 4],' Role ': [' MD ',' CTO ']}) df3 = df1.append (df2, sort = False) print (df3) Вывод Имя ID Role0 Krunal 1 NaN1 Simpson 2 NaN0 Krunal 3 MD1 Homer 4 CTO Мы явно передаем параметр sort = False, чтобы избежать сортировки столбцов и игнорировать FutureWarning. Если вы не передадите параметр sort = False, вывод будет содержать следующее предупреждающее сообщение. FutureWarning: Сортировка, поскольку ось без конкатенации не является выровнен. В будущей версии pandas по умолчанию будет отключена сортировка. Чтобы принять будущее поведение, передайте 'sort = False'. Чтобы сохранить текущее поведение и отключить предупреждение, передайте 'sort = True'. Что, если мы передадим sort = True. импортировать панды как pddf1 = pd.DataFrame ({'Name': ['Krunal', 'Simpson'] , 'ID': [1, 2]}) df2 = pd.DataFrame ({'Имя': ['Крунал', 'Гомер'], 'ID': [3, 4], 'Роль': ['MD ',' CTO ']}) df3 = df1.append (df2, sort = True) print (df3) Вывод ID Имя Role0 1 Krunal NaN1 2 Simpson NaN0 3 Krunal MD1 4 Homer CTO Обратите внимание, что столбцы отсортированы в результирующем объекте DataFrame. Обратите внимание, что эта функция устарела и будет удалена из будущих выпусков. Вставка и удаление строк в Pandas DataFrame Как мы видели, вы можете добавить john в качестве новой строки в конец df с помощью метода .append (). Давайте создадим DataFrame и серию и добавим эту серию в DataFrame с помощью метода append (). импортируем панды как pddf = pd.DataFrame ({'Name': ['Krunal', 'Simpson'], 'ID': [1, 2]}) series = pd.Series (data = {'Name': 'Elsa', 'ID': 21}) df2 = df.append (series, ignore_index = Верно) print (df2) Вывод Имя ID0 Крунал 11 Симпсон 22 Эльза 21 Здесь .append () возвращает фрейм данных Pandas с добавленной новой строкой. Обратите внимание, как Pandas использует атрибуты series.Name и series.ID, которые представляют собой значение Elsa и 21, чтобы указать метку для новой строки. Вот и все. Мы добавили новую строку в DataFrame. Вы добавили новую строку с помощью одного вызова к .append (), и вы можете удалить ее с помощью одного вызова .drop (). Добавление строк в pd.DataFrame с помощью цикла for Добавление строк в pandas. DataFrame, использующий цикл for, использует цикл for для итерации по списку строк, что в конечном итоге приводит к их добавлению в DataFrame. Внутри цикла for Объедините имена столбцов как ключи с данными столбца как значения, используя zip (ключи, значения). Создайте словарь с итератором zip, используя dict (zip). Сохраните созданный словарь в списке. Затем добавьте список словарей, называемых данными, в существующий DataFrame с помощью pandas.Dataframe. append (data, ignore_index = None). Установите для ignore_index значение True, чтобы сохранить индексы DataFrame. См. Следующий код. импортировать панды как pddf = pd.DataFrame ({'A': 1, 'B': 2, 'C': 3}, index = [0]) print (df) columns = list (df) data = [] for i in range (4, 10, 3): values = [i, i + 1, i + 2] zip = zip (columns, values) a_dictionary = dict (zipped) data.append (a_dictionary) print ('После добавления строк с помощью цикла for:') df = df.append (data, True) print (df) Output AB C0 1 2 3 После добавления строк с помощью цикла for : AB C0 1 2 31 4 5 62 7 8 9 В этом примере сначала мы создали DataFrame и распечатали этот DataFrame. Затем у нас есть столбцы этого DataFrame с помощью метода list (). И, наконец, я определил пустой список. Внутри цикла for сначала мы создаем список из 3 значений, который увеличивается на 1. Затем мы создаем итератор, а затем конвертируем это в словарь с помощью метода dict (), а затем добавить данные в список. Затем я добавил эти данные с помощью функции df.append () в DataFrame. Вы можете видеть, что мы добавили строки с индексами 1 и 2. Мы добавили две строки в существующий DataFrame, используя функцию range (), for loop, функцию zip (), dict () функция, list append () и функция df.append (). Этот подход не рекомендуется для добавления DataFrame, потому что это требует больше времени. Заключение В этом примере мы увидели, как добавить один DataFrame к другому DataFrame , как добавить данные в DataFrame, добавить строки в DataFrame, несколько строк в DataFrame и добавить данные с помощью for loop. Наконец, Pandas DataFrame append () пример метода окончен. См. также Pandas DataFrame groupby () Pandas DataFrame drop () Pandas DataFrame count () Pandas DataFrame loc [] Pandas DataFrame reset_index ()
- Параметры
- Возвращаемое значение
- Пример программы на Pandas DataFrame append ()
- Вывод
- Добавить данные двух такие фреймы данных, к которым добавлен DataFrame с некоторыми значениями NaN.
- Вывод
- Повышение значения ValueError для повторяющихся индексов.
- Вывод
- Вывод
- Добавление объектов DataFrame с несовпадающими столбцами
- Вывод
- Вывод
- Вставка и удаление строк в Pandas DataFrame
- Вывод
- Добавление строк в pd.DataFrame с помощью цикла for
- Output
- Заключение
- См. также
Понимание Pandas DataFrame append ()
Pandas Функция DataFrame append () объединяет строки из другого объекта DataFrame. Функция DataFrame append () возвращает новый объект DataFrame и не изменяет исходные объекты. Вам нужно вернуть добавленный DataFrame, потому что pandas DataFrame.append НЕ работает inplace , как добавление чистого Python. Метод append () не работает на месте.
DataFrame. append (other, ignore_index = False, verify_integrity = False, sort = None)
Параметры
Функция append () имеет 5 параметров.
- other : это DataFrame или серию.
- ignore_index : если этот параметр имеет значение true, не используйте метки индекса.
- verify_integrity : это тоже логическое значение, и по умолчанию оно ложно. Если true, при создании индекса с дубликатами возникает ошибка ValueError.
- sort : сортирует все столбцы, если столбцы self и other не выровнены.
Возвращаемое значение
df Функция .append () возвращает добавленный DataFrame .
Пример программы на Pandas DataFrame append ()
Напишите программу, чтобы показать работу метода append () в Python.
импортировать панды как pddata_set1 = {'Name': ['Rohit', 'Mohit', 'Sohit', 'Arun', 'Shubh'], 'Roll no': ['01', '02', '03', '04', '05'], 'maths': ['93', '63', ' 74 ',' 94 ',' 83 '],' science ': [' 88 ',' 55 ',' 66 ',' 94 ',' 35 '],' english ': [' 93 ',' 74 ' , '84', '92', '87']} data_set2 = {'Name': ['Karan', 'Rishu', 'Swetank', 'Rishabh', 'Shuvam'], 'Roll no': [' 06, 07, 08, 09, 10], математика: [95, 62, 64, 14, 63], наука: ['58', '59', '86', '74', '55'], 'english': ['96', '77', '89', '42', '87']} # Изменение приведенный выше словарь в dataframedf1 = pd.DataFrame (data_set1) df2 = pd.DataFrame (data_set2) print ("df1: n", df1, " n ndf2: n", df2) print (" nAppended Dataframe: n ") print (df1.append (df2))
Вывод
df1: Name Roll no maths science english0 Rohit 01 93 88 931 Мохит 02 63 55 742 Сохит 03 74 66 843 Арун 04 94 94924 Шубх 05 83 35 87df2: Имя Ролл без математики наука английский 0 Каран 06 95 58 961 Ришу 07 62 59 772 Света nk 08 64 86893 Ришаб 09 14 74 424 Шувам 10 63 55 87 Прилагаемый фрейм данных: Имя Ролик без математики наука английский0 Рохит 01 93 88 931 Мохит 02 63 55 742 Сохит 03 74 66 843 Арун 04 94 94924 Шубх 05 83 35 870 Каран 06 95 58 961 Ришу 07 62 59 772 Светанк 08 64 86 893 Ришаб 09 14 74 424 Шувам 10 63 55 87
В приведенном выше примере мы создали два DataFrame и распечатал этот DataFrame. Затем мы использовали функцию append () для добавления данных обоих DataFrames , а затем распечатали данные.
Добавить данные двух такие фреймы данных, к которым добавлен DataFrame с некоторыми значениями NaN.
См. следующий код.
импортировать панды как pddataframe1 = pd.DataFrame ({" Col1 ": [1, 2, 3]," Col2 ": [4, 5, 6]}) dataframe2 = pd.DataFrame ({" Col1 ": [1, 2, 3, 4]," Col2 ": [ 5, 6, 7, 8], "Col3": [3, 5, 6, 7]}) dataframe3 = dataframe1.append (dataframe2, ignore_index = True, sort = False) print (dataframe3)
Вывод
Col1 Col2 Col30 1 4 NaN1 2 5 NaN2 3 6 NaN3 1 5 3,04 2 6 5,05 3 7 6,06 4 8 7,0
Здесь мы создали два фрейма данных. В первом DataFrame у нас есть 2 столбца, а во вторых 3 столбца.
Следовательно, когда мы добавляем, значения col 3 будут NaN для первых нескольких строк, поскольку значения col3 не представлены в первом DataFrame.
Повышение значения ValueError для повторяющихся индексов.
Мы можем передать verify_integrity = True в вызвать ValueError , если в двух объектах DataFrame есть повторяющиеся индексы.
импортировать панды как pddf1 = pd.DataFrame ({'Name': ['Krunal' , 'Анкит'], 'ID': [11, 21]}) df2 = pd.DataFrame ({'Имя': ['Нива', 'Манси'], 'ID': [19, 46]}) df3 = df1.append (df2, verify_integrity = True)
Вывод
Traceback (последний вызов последним): приложение "Файл" .py ", строка 6, в файле df3 = df1.append (df2, verify_integrity = True)"/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/ core/frame.py ", строка 7081, в добавлении return concat (Файл"/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core/reshape/concat.py " , строка 271, в concat op = _Concatenator (File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core /reshape/concat.py ", строка 452, в файле __init__ self.new_axes = self._get_new_axes ()"/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core /reshape/concat.py ", строка 515, в _get_new_axes return [File"/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core/reshape/concat.py » , строка 516, в self._get_concat_axis () if i == self.axis else self._get_comb_axis (i) File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site- packages/pandas/core/reshape/concat.py ", строка 572, в файле _get_concat_axis self._maybe_check_integrity (concat_axis)"/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas /core/reshape/concat.py ", строка 580, в _maybe_check_integrity поднять ValueError (ValueError: индексы имеют перекрывающиеся значения: Int64Index ([0, 1], dtype = 'int64')
В на выходе вы можете увидеть, что ValueError: индексы имеют перекрывающиеся значения: Int64Index ([0, 1], dtype = ‘int64’) .
Теперь давайте посмотрим на другой пример, в котором у нас нет повторяющихся индексов.
импортировать панды как pddataframe1 = pd.DataFrame ({"Col1": [1, 2, 3], "Col2": [4, 5, 6]}) dataframe2 = pd.DataFrame ({"Col1": [7, 8, 9], " Col2 ": [10, 11, 12]}) dataframe3 = dataframe1.append (dataframe2, ignore_index = True, sort = False) print (dataframe3)
Вывод
Col1 Col20 1 41 2 52 3 63 7 104 8 115 9 12
Вы можете видеть, что col1 и col2 объединяются в dataframe3 .
Добавление объектов DataFrame с несовпадающими столбцами
импортировать панды как pddf1 = pd. DataFrame ({'Имя': ['Крунал', 'Симпсон'], 'ID': [1, 2]}) df2 = pd.DataFrame ({'Имя': ['Крунал', 'Гомер'], ' ID ': [3, 4],' Role ': [' MD ',' CTO ']}) df3 = df1.append (df2, sort = False) print (df3)
Вывод
Имя ID Role0 Krunal 1 NaN1 Simpson 2 NaN0 Krunal 3 MD1 Homer 4 CTO
Мы явно передаем параметр sort = False , чтобы избежать сортировки столбцов и игнорировать FutureWarning . Если вы не передадите параметр sort = False , вывод будет содержать следующее предупреждающее сообщение.
FutureWarning: Сортировка, поскольку ось без конкатенации не является выровнен. В будущей версии pandas по умолчанию будет отключена сортировка. Чтобы принять будущее поведение, передайте 'sort = False'. Чтобы сохранить текущее поведение и отключить предупреждение, передайте 'sort = True'.
Что, если мы передадим sort = True .
импортировать панды как pddf1 = pd.DataFrame ({'Name': ['Krunal', 'Simpson'] , 'ID': [1, 2]}) df2 = pd.DataFrame ({'Имя': ['Крунал', 'Гомер'], 'ID': [3, 4], 'Роль': ['MD ',' CTO ']}) df3 = df1.append (df2, sort = True) print (df3)
Вывод
ID Имя Role0 1 Krunal NaN1 2 Simpson NaN0 3 Krunal MD1 4 Homer CTO
Обратите внимание, что столбцы отсортированы в результирующем объекте DataFrame . Обратите внимание, что эта функция устарела и будет удалена из будущих выпусков.
Вставка и удаление строк в Pandas DataFrame
Как мы видели, вы можете добавить john в качестве новой строки в конец df с помощью метода .append () .
Давайте создадим DataFrame и серию и добавим эту серию в DataFrame с помощью метода append ().
импортируем панды как pddf = pd.DataFrame ({'Name': ['Krunal', 'Simpson'], 'ID': [1, 2]}) series = pd.Series (data = {'Name': 'Elsa', 'ID': 21}) df2 = df.append (series, ignore_index = Верно) print (df2)
Вывод
Имя ID0 Крунал 11 Симпсон 22 Эльза 21
Здесь .append () возвращает фрейм данных Pandas с добавленной новой строкой. Обратите внимание, как Pandas использует атрибуты series.Name и series.ID , которые представляют собой значение Elsa и 21, чтобы указать метку для новой строки.
Вот и все. Мы добавили новую строку в DataFrame . Вы добавили новую строку с помощью одного вызова к .append () , и вы можете удалить ее с помощью одного вызова .drop ().
Добавление строк в pd.DataFrame с помощью цикла for
Добавление строк в pandas. DataFrame, использующий цикл for, использует цикл for для итерации по списку строк, что в конечном итоге приводит к их добавлению в DataFrame.
Внутри цикла for
- Объедините имена столбцов как ключи с данными столбца как значения, используя zip (ключи, значения).
- Создайте словарь с итератором zip, используя dict (zip).
- Сохраните созданный словарь в списке.
Затем добавьте список словарей, называемых данными, в существующий DataFrame с помощью pandas.Dataframe. append (data, ignore_index = None) . Установите для ignore_index значение True , чтобы сохранить индексы DataFrame.
См. Следующий код.
импортировать панды как pddf = pd.DataFrame ({'A': 1, 'B': 2, 'C': 3}, index = [0]) print (df) columns = list (df) data = [] for i in range (4, 10, 3): values = [i, i + 1, i + 2] zip = zip (columns, values) a_dictionary = dict (zipped) data.append (a_dictionary) print ('После добавления строк с помощью цикла for:') df = df.append (data, True) print (df)
Output
AB C0 1 2 3 После добавления строк с помощью цикла for : AB C0 1 2 31 4 5 62 7 8 9
В этом примере сначала мы создали DataFrame и распечатали этот DataFrame. Затем у нас есть столбцы этого DataFrame с помощью метода list (). И, наконец, я определил пустой список.
Внутри цикла for сначала мы создаем список из 3 значений, который увеличивается на 1. Затем мы создаем итератор, а затем конвертируем это в словарь с помощью метода dict (), а затем добавить данные в список.
Затем я добавил эти данные с помощью функции df.append () в DataFrame. Вы можете видеть, что мы добавили строки с индексами 1 и 2.
Мы добавили две строки в существующий DataFrame, используя функцию range (), for loop, функцию zip (), dict () функция, list append () и функция df.append ().
Этот подход не рекомендуется для добавления DataFrame, потому что это требует больше времени.
Заключение
В этом примере мы увидели, как добавить один DataFrame к другому DataFrame , как добавить данные в DataFrame, добавить строки в DataFrame, несколько строк в DataFrame и добавить данные с помощью for loop .
Наконец, Pandas DataFrame append () пример метода окончен.
См. также
Pandas DataFrame groupby ()
Pandas DataFrame drop ()
Pandas DataFrame count ()
Pandas DataFrame loc []
Pandas DataFrame reset_index ()