logo

Конкатенация на панди

Pandas е в състояние да комбинира обекти Series, DataFrame и Panel чрез различни видове набор логика за индексите и функционалността на релационната алгебра.

The concat() функция е отговорна за извършване на операция за конкатенация по ос в DataFrame.

Синтаксис:

 pd.concat(objs,axis=0,join='outer',join_axes=None, ignore_index=False) 

Параметри:

    обекти:Това е последователност или картографиране на серии или DataFrame обекти.
    Ако подадем dict в DataFrame, тогава сортираните ключове ще бъдат използвани като keys аргумент и стойностите ще бъдат избрани в този случай. Ако има някакви не-обекти, тогава те ще бъдат премахнати, освен ако всички те не са никакви и в този случай, ValueError ще бъдат повдигнати.ос:Това е ос, по която трябва да се съединим.присъединяване:Отговаря за обработката на индекси на друга ос.съединителни оси:Списък с индексни обекти. Вместо да изпълняват логиката на вътрешния или външния набор, специфични индекси се използват за другата (n-1) ос.ignore_index:bool, стойност по подразбиране False
    Той не използва стойностите на индекса на оста на конкатенация, ако е вярно. Получената ос ще бъде означена като 0, ..., n - 1.

Се завръща

Серия се връща, когато свържем всички серии по оста (ос=0). В случай, че ако objs съдържа поне една DataFrame, той връща DataFrame.

Пример1:

 import pandas as pd a_data = pd.Series(['p', 'q']) b_data = pd.Series(['r', 's']) pd.concat([a_data, b_data]) 

Изход

 0 p 1 q 0 r 1 s dtype: object 

Пример2: В горния пример можем да нулираме съществуващия индекс, като използваме ignore_index параметър. Кодът по-долу демонстрира работата на ignore_index .

 import pandas as pd a_data = pd.Series(['p', 'q']) b_data = pd.Series(['r', 's']) pd.concat([a_data, b_data], ignore_index=True) 

Изход

 0 p 1 q 2 r 3 s dtype: object 

Пример 3: Можем да добавим йерархичен индекс на най-външното ниво на данните, като използваме ключове параметър.

 import pandas as pd a_data = pd.Series(['p', 'q']) b_data = pd.Series(['r', 's']) pd.concat([a_data, b_data], keys=['a_data', 'b_data']) 

Изход

 a_data 0 p 1 q b_data 0 r 1 s dtype: object 

Пример 4: Можем да етикетираме индексните ключове, като използваме имена параметър. Кодът по-долу показва работата на параметъра имена.

 import pandas as pd a_data = pd.Series(['p', 'q']) b_data = pd.Series(['r', 's']) pd.concat([a_data, b_data], keys=['a_data', 'b_data']) pd.concat([a_data, b_data], keys=['a_data', 'b_data'], names=['Series name', 'Row ID']) 

Изход

 Series name Row ID a_data 0 p 1 q b_data 0 r 1 s dtype: object 

Конкатенация с помощта на append

Методът append се дефинира като полезен пряк път за свързване на Series и DataFrame.

Пример:

 import pandas as pd one = pd.DataFrame({ 'Name': ['Parker', 'Smith', 'Allen', 'John', 'Parker'], 'subject_id':['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':[98,90,87,69,78]}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':[89,80,79,97,88]}, index=[1,2,3,4,5]) print (one.append(two)) 

Изход

 Name subject_id Marks_scored 1 Parker sub1 98 2 Smith sub2 90 3 Allen sub4 87 4 John sub6 69 5 Parker sub5 78 1 Billy sub2 89 2 Brian sub4 80 3 Bran sub3 79 4 Bryce sub6 97 5 Betty sub5 88