Birden fazla pandas dataframe'i nasıl istifleyebilirim?
Genellikle iki veya daha fazla panda DataFrames’i yığmak isteyebilirsiniz. Neyse ki pandas concat() işlevini kullanarak bunu yapmak kolaydır.
Bu eğitimde bunun nasıl yapılacağına dair birkaç örnek gösterilmektedir.
Örnek 1: İki Pandas DataFrame’i yığınlayın
Aşağıdaki kod, iki panda DataFrame’in üst üste nasıl “istifleneceğini” ve bir DataFrame oluşturulacağını gösterir:
import pandas as pd #create two DataFrames df1 = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E'], 'points':[12, 5, 13, 17, 27]}) df2 = pd.DataFrame({'player': ['F', 'G', 'H', 'I', 'J'], 'points':[24, 26, 27, 27, 12]}) #"stack" the two DataFrames together df3 = pd. concat ([df1,df2], ignore_index= True ) #view resulting DataFrame df3 player points 0 to 12 1 B 5 2 C 13 3 D 17 4 E 27 5 F 24 6 G 26 7:27 a.m. 8 I 27 9 D 12
Örnek 2: Üç Pandas DataFrame’i yığınlayın
Benzer kod, bir DataFrame oluşturmak üzere üç panda DataFrame’i üst üste istiflemek için kullanılabilir:
import pandas as pd #create three DataFrames df1 = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E'], 'points':[12, 5, 13, 17, 27]}) df2 = pd.DataFrame({'player': ['F', 'G', 'H', 'I', 'J'], 'points':[24, 26, 27, 27, 12]}) df3 = pd.DataFrame({'player': ['K', 'L', 'M', 'N', 'O'], 'points':[9, 5, 5, 13, 17]}) #"stack" the two DataFrames together df4 = pd. concat ([df1,df2, df3], ignore_index= True ) #view resulting DataFrame df4 player points 0 to 12 1 B 5 2 C 13 3 D 17 4 E 27 5 F 24 6 G 26 7:27 a.m. 8 I 27 9 D 12 10K 9 11 L 5 12 M 5 13 N 13 14 O 17
İgnore_index’in önemi
Önceki örneklerde göz ardı_index=True kullandığımızı unutmayın.
Bu, pandalara her DataFrame’deki dizin numaralarını göz ardı etmelerini ve yeni DataFrame için 0’dan n-1’e kadar yeni bir dizin oluşturmalarını söyler.
Örneğin, aşağıdaki iki DataFrame’i yığınlarken görmezden_index=True kullanmadığımızda ne olacağını düşünün:
import pandas as pd #create two DataFrames with indices df1 = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E'], 'points':[12, 5, 13, 17, 27]}, index=[0, 1, 2, 3, 4]) df2 = pd.DataFrame({'player': ['F', 'G', 'H', 'I', 'J'], 'points':[24, 26, 27, 27, 12]}, index=[2, 4, 5, 6, 9]) #stack the two DataFrames together df3 = pd. concat ([df1,df2]) #view resulting DataFrame df3 player points 0 to 12 1 B 5 2 C 13 3 D 17 4 E 27 2 F 24 4G 26 5:27 a.m. 6 I 27 9 D 12
Ortaya çıkan DataFrame, her iki DataFrame’den de orijinal indeks değerlerini korudu.
Bu nedenle, orijinal dizin değerlerini korumak için özel bir nedeniniz olmadığı sürece, iki DataFrame’i istiflerken genellikle görmezden_index=True kullanmalısınız.
Ek kaynaklar
Aşağıdaki eğitimlerde Pandalar’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
Pandas DataFrame’e boş bir sütun nasıl eklenir
Pandas DataFrame’e sütun nasıl eklenir
Pandas DataFrame’i Excel’e nasıl aktarırım