Автор оригинала: Pankaj Kumar.
Функция PandaS DataFrame Append () используется для объединения строк из другого объекта DataFrame. Эта функция возвращает новый объект DataFrame и не изменяет объекты источника. Если в столбцах есть несоответствие, новые столбцы добавляются в результате dataframe.
1. Параметры PandaS DataFrame Partend ()
Функциональный синтаксис Append ():
append(other, ignore_index=False, verify_integrity=False, sort=None)
- Другое : The DataFrame, Series или Dict – подобный объекту, строки которого будут добавлены в Caller DataFrame.
- Ignore_index Если это правда, индексы из объектов источника DataFrame игнорируются.
- Verify_Interity : Если правда, поднять
ValueError
на создание индекса с дубликатами. - Сортировать : сортировка столбцов Если столбцы источника DataFrame не выровнены. Эта функциональность устарела. Так что мы должны пройти
Сортировать = правда
Сортировать и молчать предупреждающее сообщение. ЕслиСортировать = false
Прошло, столбцы не отсортированы, и предупреждение игнорируется.
Давайте посмотрим на некоторые примеры функции DataFrame Papend ().
2. Добавление двух данных DataFrames
import pandas as pd df1 = pd.DataFrame({'Name': ['Pankaj', 'Lisa'], 'ID': [1, 2]}) df2 = pd.DataFrame({'Name': ['David'], 'ID': [3]}) print(df1) print(df2) df3 = df1.append(df2) print('\nResult DataFrame:\n', df3)
Выход:
Name ID 0 Pankaj 1 1 Lisa 2 Name ID 0 David 3 Result DataFrame: Name ID 0 Pankaj 1 1 Lisa 2 0 David 3
3. Присоединение и игнорирование индексов DataFrame
Если вы посмотрите на предыдущий пример, выход содержит дубликаты индексов. Мы можем пройти lightore_index = true
Чтобы игнорировать индексы источника и назначить новый индекс к выходному DataFrame.
df3 = df1.append(df2, ignore_index=True) print(df3)
Выход:
Name ID 0 Pankaj 1 1 Lisa 2 2 David 3
4. Поднимите ValueError для дублирующих индексов
Мы можем пройти Verify_Interite = True
Чтобы поднять ValucteRor, если есть дубликаты индексов в двух объектах DataFrame.
import pandas as pd df1 = pd.DataFrame({'Name': ['Pankaj', 'Lisa'], 'ID': [1, 2]}) df2 = pd.DataFrame({'Name': ['David'], 'ID': [3]}) df3 = df1.append(df2, verify_integrity=True)
Выход:
ValueError: Indexes have overlapping values: Int64Index([0], dtype='int64')
Давайте посмотрим на другой пример, где у нас нет дублирующих индексов.
import pandas as pd df1 = pd.DataFrame({'Name': ['Pankaj', 'Lisa'], 'ID': [1, 2]}, index=[100, 200]) df2 = pd.DataFrame({'Name': ['David'], 'ID': [3]}, index=[300]) df3 = df1.append(df2, verify_integrity=True) print(df3)
Выход:
Name ID 100 Pankaj 1 200 Lisa 2 300 David 3
5. Присоединение объектов DataFrame с не совпадающими столбцами
import pandas as pd df1 = pd.DataFrame({'Name': ['Pankaj', 'Lisa'], 'ID': [1, 2]}) df2 = pd.DataFrame({'Name': ['Pankaj', 'David'], 'ID': [1, 3], 'Role': ['CEO', 'Author']}) df3 = df1.append(df2, sort=False) print(df3)
Выход:
Name ID Role 0 Pankaj 1 NaN 1 Lisa 2 NaN 0 Pankaj 1 CEO 1 David 3 Author
Мы явно проезжаем Сортировать = false
Чтобы избежать сортировки колонн и игнорировать будущее. Если вы не передадите этот параметр, выход будет содержать следующее предупреждающее сообщение.
FutureWarning: Sorting because the non-concatenation axis is not aligned. A future version of pandas will change to not sort by default. To accept the future behavior, pass 'sort=False'. To retain the current behavior and silence the warning, pass 'sort=True'.
Посмотрим, что произойдет, когда мы пройдем Сортировать = правда
Отказ
import pandas as pd df1 = pd.DataFrame({'Name': ['Pankaj', 'Lisa'], 'ID': [1, 2]}) df2 = pd.DataFrame({'Name': ['Pankaj', 'David'], 'ID': [1, 3], 'Role': ['CEO', 'Author']}) df3 = df1.append(df2, sort=True) print(df3)
Выход:
ID Name Role 0 1 Pankaj NaN 1 2 Lisa NaN 0 1 Pankaj CEO 1 3 David Author
Обратите внимание, что столбцы сортируются в результате объекта DataFrame. Обратите внимание, что эта функция устарела и будет удалена из будущих выпусков.
Давайте посмотрим на другой пример, где у нас нет совпадающих столбцов с значениями int.
import pandas as pd df1 = pd.DataFrame({'ID': [1, 2]}) df2 = pd.DataFrame({'Name': ['Pankaj', 'Lisa']}) df3 = df1.append(df2, sort=False) print(df3)
Выход:
ID Name 0 1.0 NaN 1 2.0 NaN 0 NaN Pankaj 1 NaN Lisa
Обратите внимание, что значения идентификатора изменены на номера с плавающей точкой, чтобы разрешить значение NAN.
6. Ссылки
- Учебник модуля Python Pandas
- Функция Pandas Concat ()
- Pandas DataFrame добавить () документы API