Добавете Dict към DataFrame в Pandas

Dobavete Dict K M Dataframe V Pandas



Ще обсъдим как да добавим речник към съществуващия Pandas DataFrame с помощта на функциите pandas.DataFrame.append() и pandas.concat() с примери. Тук речникът препраща към двойката ключ:стойност, така че ключът се отнася до съществуващите етикети на колони, които присъстват в DataFrame и стойностите се добавят в ред. Освен това ще видим примерите, които добавят множество речници към Pandas DataFrame.

Използвайки Pandas.DataFrame.Append

Функцията pandas.DataFrame.append() се използва за добавяне на редовете на друга DataFrame към съществуващата DataFrame. Ако колоните в съществуващия DataFrame не съществуват, другите колони на DataFrame се създават в съществуващия DataFrame. Използвайте тази функция по такъв начин, че редът да бъде вмъкнат в DataFrame чрез добавяне на речника.

Синтаксис :







Следното е действителният синтаксис на функцията pandas.DataFrame.append():



панди. DataFrame . добавям ( друго , ignore_index , проверка_интегритета , вид )
  1. друго : Това се отнася до друга DataFrame, в която редовете на тази DataFrame са добавени към съществуващата DataFrame. Ако искате да добавите един ред, трябва да подадете речник на стойностите като параметър.
  2. ignore_index (по подразбиране = False): Този параметър се използва, когато добавяте редове към DataFrame, който вече има редове. Ако е „False“, индексите на съществуващите редове също се добавят. Ако е „Истина“, редовете се обозначават от 0 до n-1. Уверете се, че този параметър е зададен на „True“, докато добавяте речник към DataFrame. В противен случай се появява тип грешка – „TypeError: Може да добави dict само ако ignore_index=True“.
  3. Можем да проверим за дублиращи се индекси с помощта на параметъра verify_integrity (по подразбиране = False). Ако индексите са дублирани и verify_integrity е зададен на „True“, той връща „ValueError: Индексите имат припокриващи се стойности“.
  4. Възможно е да сортирате колоните, ако колоните на съществуващата DataFrame и друга DataFrame не са подравнени с помощта на параметъра за сортиране, като го зададете на „True“ (по подразбиране = False).

Пример 1: Добавяне на единичен речник

Създайте Pandas DataFrame с четири колони – „Campaign_Name“, „Location“, „StartDate“ и „Budget“ – и три реда. Добавяне на речник към този DataFrame.



импортиране панди

# Създайте DataFrame - Кампания с 4 колони и 3 реда
Кампания = панди. DataFrame ( [ [ „Маркетингов лагер“ , 'Индия' , „12.01.2023 г.“ , 8000 ] ,
[ „Лагер за продажби“ , 'Италия' , „25.01.2022 г.“ , 10 000 ] ,
[ „Друг лагер“ , 'САЩ' , „17.04.2023 г.“ , 2000 г ] ] ,
колони = [ „Campaign_Name“ , „Местоположение“ , 'Начална дата' , „Бюджет“ ] )
печат ( Кампания , ' ' )

# Добавяне на един ред
Кампания = Кампания. добавям ( { „Campaign_Name“ : 'Технически лагер' , „Местоположение“ : 'САЩ' , 'Начална дата' : „05/12/2023“ , „Бюджет“ : 2000 г } , ignore_index = Вярно )
печат ( Кампания , ' ' )

Изход :





Можем да видим, че речникът е добавен към DataFrame „Campaign“. Индексът на този нов ред е 3, тъй като индексът се игнорира.



Пример 2: Добавяне на множество речници

Използвайте същата DataFrame, която е създадена в Пример 1, и добавете три реда наведнъж, като използвате функцията pandas.DataFrame.append(). Задайте параметъра ignore_index на „True“.

импортиране панди

# Създайте DataFrame - Кампания с 4 колони и 3 реда
Кампания = панди. DataFrame ( [ [ „Маркетингов лагер“ , 'Индия' , „12.01.2023 г.“ , 8000 ] ,
[ „Лагер за продажби“ , 'Италия' , „25.01.2022 г.“ , 10 000 ] ,
[ „Друг лагер“ , 'САЩ' , „17.04.2023 г.“ , 2000 г ] ] ,
колони = [ „Campaign_Name“ , „Местоположение“ , 'Начална дата' , „Бюджет“ ] )
печат ( Кампания , ' ' )

Кампания = Кампания. добавям ( { „Campaign_Name“ : 'Технически лагер' , „Местоположение“ : 'САЩ' , 'Начална дата' : „05/12/2023“ , „Бюджет“ : 2000 г } , ignore_index = Вярно )
Кампания = Кампания. добавям ( { „Campaign_Name“ : „Маркетингов лагер“ , „Местоположение“ : 'Индия' , 'Начална дата' : „23.06.2023 г.“ , „Бюджет“ : 9000 } , ignore_index = Вярно )
Кампания = Кампания. добавям ( { „Campaign_Name“ : „Лагер MSales“ , „Местоположение“ : 'Италия' , 'Начална дата' : „24.01.2023 г.“ , „Бюджет“ : 1200 } , ignore_index = Вярно )
печат ( Кампания )

Изход :

Три реда се добавят един след друг с 3, 4 и 5 индекса към съществуващата DataFrame.

Използвайки Pandas.Concat

Функцията pandas.concat() свързва два или повече DataFrames по редовете или колоните. И така, трябва да трансформираме речника в DataFrame и да предадем два DataFrame на тази функция.

Синтаксис :

Добавяне на речник към съществуващия DataFrame:

панди. concat ( [ Existing_DataFrame , Transformed_Dictionary ] , ос = 0 , ignore_index , проверка_интегритета )
  1. Ако axis = 0, конкатенацията се извършва по редовете. Конкатенацията се извършва по колоните, ако е зададено Приложени необходими главни букви, тъй като това е подзаглавие. Добавена е необходимата статия за краткост към 1.
  2. The ignore_index (по подразбиране = False): Този параметър се използва, когато добавяте редовете към DataFrame, който вече има редове. Ако е „False“, индексите на съществуващите редове също се добавят. Ако е „Истина“, редовете се обозначават от 0 до n-1.
  3. Можем да проверим за дублиращи се индекси с помощта на параметъра verify_integrity (по подразбиране = False). Ако индексите са дублирани и verify_integrity е зададен на „True“, той връща „ValueError: Индексите имат припокриващи се стойности“.

Пример 1: Добавяне на единичен речник

Създайте Pandas DataFrame с четири колони – „Campaign_Name“, „Location“, „StartDate“ и „Budget“ – и три реда. С помощта на функцията pandas.concat() добавете един речник (DataFrame) като ред към този DataFrame.

импортиране панди


# Създайте DataFrame - Кампания с 4 колони и 3 реда
Кампания = панди. DataFrame ( [ [ „Маркетингов лагер“ , 'Индия' , „12.01.2023 г.“ , 8000 ] ,
[ „Лагер за продажби“ , 'Италия' , „25.01.2022 г.“ , 10 000 ] ,
[ „Друг лагер“ , 'САЩ' , „17.04.2023 г.“ , 2000 г ] ] ,
колони = [ „Campaign_Name“ , „Местоположение“ , 'Начална дата' , „Бюджет“ ] )
печат ( Кампания , ' ' )

речник_от_DataFrame = панди. DataFrame ( [ { „Campaign_Name“ : „Сервизен лагер“ , „Местоположение“ : 'САЩ' , 'Начална дата' : „17.04.2023 г.“ , „Бюджет“ : 1000 } ] )

# Добавяне на един ред
Кампания = панди. concat ( [ Кампания , речник_от_DataFrame ] , ос = 0 )
печат ( Кампания , ' ' )

Изход :

Можем да видим, че речникът е добавен към DataFrame „Campaign“. Индексът на този нов ред е 0, тъй като индексът не се игнорира.

Пример 2: Добавяне на множество речници

Използвайте предишния DataFrame и добавете три речника (DataFrame), като игнорирате индекса.

импортиране панди


# Създайте DataFrame - Кампания с 4 колони и 3 реда
Кампания = панди. DataFrame ( [ [ „Маркетингов лагер“ , 'Индия' , „12.01.2023 г.“ , 8000 ] ,
[ „Лагер за продажби“ , 'Италия' , „25.01.2022 г.“ , 10 000 ] ,
[ „Друг лагер“ , 'САЩ' , „17.04.2023 г.“ , 2000 г ] ] ,
колони = [ „Campaign_Name“ , „Местоположение“ , 'Начална дата' , „Бюджет“ ] )
печат ( Кампания , ' ' )

речник_от_DataFrame = панди. DataFrame ( [ { „Campaign_Name“ : „Технически лагер“ , „Местоположение“ : 'САЩ' , 'Начална дата' : „17.05.2023 г.“ , „Бюджет“ : 1000 } ,
{ „Campaign_Name“ : 'Социални услуги' , „Местоположение“ : 'Япония' , 'Начална дата' : „17.04.2023 г.“ , „Бюджет“ : 200 } ,
{ „Campaign_Name“ : „Лагер за продажби“ , „Местоположение“ : 'САЩ' , 'Начална дата' : „18.04.2023 г.“ , „Бюджет“ : 500 } ] )

# Добавете няколко реда
Кампания = панди. concat ( [ Кампания , речник_от_DataFrame ] , ос = 0 , ignore_index = Вярно )
печат ( Кампания , ' ' )

Изход :

Можем да видим, че три речника са добавени към DataFrame „Campaign“. Индексите на тези речници са 3, 4 и 5, тъй като параметърът ignore_index е зададен на „False“.

Заключение

Единичните/многобройните речници се добавят към DataFrame с помощта на функциите pandas.DataFrame.append() и pandas.concat(). Индексите на новите редове могат да бъдат уникални чрез задаване на параметъра ignore_index на „True“ във функцията pandas.concat(). Докато използвате функцията pandas.DataFrame.append(), задайте параметъра ignore_index на „True“. В противен случай се повдига TypeError.