Как добавить строку в dataframe pandas
Перейти к содержимому

Как добавить строку в dataframe pandas

Как случайно перемешать строки или добавить пустую строку в pandas

Как добавить пустую строку к DataFrame в [pandas]

df.append(pandas.Series(), ignore_index=True) 

Если нужно добавить в начало, то можно так:

df1 = pd.DataFrame([[np.nan] * len(df.columns)], columns=df.columns) df = df1.append(df, ignore_index=True) 
df A B C D E 0 1 2 3 4 5 1 4 5 6 7 8 df.loc[len(df)] = 0 df A B C D E 0 1 2 3 4 5 1 4 5 6 7 8 2 0 0 0 0 0 df = df.shift() df.loc[0] = 0 df A B C D E 0 0.0 0.0 0.0 0.0 0.0 1 1.0 2.0 3.0 4.0 5.0 2 4.0 5.0 6.0 7.0 8.0 
  • [pandas-rolling-window]
  • [2021-12-26-daily-note] найти разницу между датафреймами, измененеие порядка колонок
  • [2022-01-04-daily-note] ошибка If using all scalar values, you must pass an index, конвертация датафрейма в датафрейм в одну строку и о том как хранить и извлекать списки в датафрейме

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=[, , , , , ] df=pd.DataFrame(myDicts) print("The original dataframe is:") print(df) newDict= 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: 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=[, , , , , ] df=pd.DataFrame(myDicts) print("The original dataframe is:") print(df) newDict= 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: 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=[, , , , , ] df=pd.DataFrame(myDicts) print("The original dataframe is:") print(df) newDict= 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: 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=[, , , , , ] df=pd.DataFrame(myDicts) print("The original dataframe is:") print(df) newDict= 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: 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() .

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

Как добавить новую строчку в DataFrame при указании значения только одного столбца?

Необходимо добавить в DF новую строку, указав значение только одного столбца. Например имеем фрейм данных:

d = df = pd.DataFrame(data = d) 

Необходимо добавить строку в конец фрейма, указав только значение адреса. Должно получиться следующее:

d1 = df1 = pd.DataFrame(data = d1) 

Причём, желательно обойтись без перебора функцией for.
Отслеживать
149k 12 12 золотых знаков 59 59 серебряных знаков 132 132 бронзовых знака
задан 31 янв 2022 в 20:14
lerm_on_t_off lerm_on_t_off
133 11 11 бронзовых знаков

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Вариант 1:

df.loc[len(df)] = [np.nan, np.nan, 'VR'] 

Вариант 2:

df = df.append(dict(Address="VR"), ignore_index=True) 

Вариант 3:

df = df.append(pd.Series("VR", name=len(df), index=["Address"])) 

Отслеживать
ответ дан 31 янв 2022 в 20:33
MaxU — stand with Ukraine MaxU — stand with Ukraine
149k 12 12 золотых знаков 59 59 серебряных знаков 132 132 бронзовых знака

в дополнение к уже предложенному:

df.loc[len(df),'Address'] = 'VR' 

Отслеживать
ответ дан 1 фев 2022 в 9:31
5,635 1 1 золотой знак 7 7 серебряных знаков 17 17 бронзовых знаков
по-моему, это оптимальный вариант для случая когда отсутствуют данные для других столбцов )
1 фев 2022 в 9:33

Но это только если индексы строго от 0 до len(df)-1 , а если вдруг в индексах разброд и шатание (например, из датафрейма что-то удаляли, а индекс не сбросили), то значение может попасть в уже имеющуюся строку. Как вариант можно взять индекс df.index.max()+1 .

1 фев 2022 в 9:39

@CrazyElf, с «кастомными» индексами все еще веселее — они могут быть строками или timestamp, тогда и ваш вариант ( df.index.max()+1 ) неправильно отработает )

1 фев 2022 в 11:08

@MaxU Безусловно. Но вариант «из датафрейма удалили (не выбрали) некоторые строки» всё-таки более вероятен )

Как добавить одну строку в существующий DataFrame Pandas?

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

Как добавить одну строку в существующий фрейм данных Pandas?

Прежде чем добавить новую строку в фрейм данных pandas, давайте сначала создадим образец фрейма данных Pandas на Python, который мы будем использовать на протяжении всей статьи. Мы создадим DataFrame Pandas с тремя столбцами: «Имя», «Пол» и «Возраст». Ниже приведена программа для создания кадра данных Pandas на Python.

Пример

import pandas as pd data = < "Name": ["Jane", "Martin", "Baskin"], "Gender": ["Female", "Male", "Male"], "Age": [20, 34, 32] >df = pd.DataFrame(data) print(df) 

Выход

 Name Gender Age 0 Jane Female 20 1 Martin Male 34 2 Baskin Male 32 

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

Способ 1: использование метода add()

Использование метода add() — один из самых простых способов добавить новую строку в кадр данных Pandas. Этот метод добавляет новую строку к существующему Dataframe. Ниже приведен пример использования этого метода с существующим фреймом данных.

Пример

import pandas as pd data = < "Name": ["Jane", "Martin", "Baskin"], "Gender": ["Female", "Male", "Male"], "Age": [20, 34, 32] >df = pd.DataFrame(data) new_r = df = df.append(new_r, ignore_index=True) print(df) 

Выход

 Name Gender Age 0 Jane Female 20 1 Martin Male 34 2 Baskin Male 32 3 Alicia Female 30 

В приведенной выше программе мы создали новый словарь под названием new_row со значениями для новой строки, которую мы хотим добавить в существующий фрейм данных. Затем мы использовали функцию Append(), чтобы добавить новую строку в существующий фрейм данных. Аргумент ignore_index=True используется для сброса индекса Dataframe после добавления новой строки.

Способ 2: использование метода loc[]

Другой способ добавить новую строку в DataFrame Pandas — использовать метод loc[]. Этот метод позволяет нам выбрать определенное место в кадре данных и добавить в это место новую строку. Ниже приведен один из примеров того, как добавить новую строку в конец DataFrame Pandas с помощью метода loc[] —

Пример

import pandas as pd d= < "Name": ["Jane", "Martin", "Baskin"], "Gender": ["Female", "Male", "Male"], "Age": [20, 34, 32] >df = pd.DataFrame(d) new_r = df.loc[len(df)] = new_r print(df) 

Выход

 Name Gender Age 0 Jane Female 20 1 Martin Male 34 2 Baskin Male 32 3 Alice Female 27 

В приведенном выше коде мы использовали метод pandas len(df) для получения индекса последней строки в DataFrame и добавили его для получения индекса новой строки. После этого мы использовали метод loc[] для добавления новой строки в конец существующего DataFrame.

Добавьте несколько строк в существующий DataFrame в Python

Если мы хотим добавить несколько строк в существующий фрейм данных Pandas, мы можем создать новый фрейм данных, содержащий новые строки, и мы будем использовать метод concat() для объединения нового фрейма данных с существующим фреймом данных. Ниже приведен пример того же самого —

Пример

import pandas as pd d= < "Name": ["Jane", "Martin", "Baskin"], "Gender": ["Female", "Male", "Male"], "Age": [20, 34, 32] >df = pd.DataFrame(d) new_d = < 'Name': ['Alaska', 'David'], 'Age': [28, 33], 'Gender': ['female', 'Male'] >new_df = pd.DataFrame(new_d) df = pd.concat([df, new_df], ignore_index=True) print(df) 

Выход

 Name Gender Age 0 Jane Female 20 1 Martin Male 34 2 Baskin Male 32 3 Alaska female 28 4 David Male 33 

В приведенной выше программе мы создали новый DataFrame, содержащий новые строки, которые мы хотим добавить в существующий DataFrame. После этого мы использовали метод concat() библиотеки Python Pandas, чтобы объединить новый фрейм данных с существующим фреймом данных, который мы уже создали. Параметр ignore_index=True или аргумент используется для сброса индекса фрейма данных после объединения нового фрейма данных с существующим фреймом данных.

Заключение

В заключение мы использовали три разные функции pandas, чтобы добавить одну строку в существующий фрейм данных Pandas. Мы использовали метод concat(), метод loc[] и функцию add(), чтобы добавить одну строку в существующий фрейм данных, созданный с помощью библиотеки Panads, написанной на Python.

Все права защищены. © Linux-Console.net • 2019-2023

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

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