Pandas DataFrame Nasıl Oluşturulur [Örneklerle]

Yayınlanan: 2022-12-08

Pandas DataFrames ile çalışmanın temellerini öğrenin: güçlü bir veri işleme kitaplığı olan pandas'taki temel veri yapısı.

Python'da veri analizine başlamak istiyorsanız, pandas, birlikte çalışmayı öğrenmeniz gereken ilk kitaplıklardan biridir. CSV dosyaları ve veritabanları gibi birden çok kaynaktan veri içe aktarmaktan eksik verileri işlemeye ve içgörü elde etmek için analiz etmeye kadar pandalar, yukarıdakilerin hepsini yapmanızı sağlar.

Verileri pandalarla analiz etmeye başlamak için pandalardaki temel veri yapısını anlamalısınız: veri çerçeveleri .

Bu öğreticide, panda veri çerçevelerinin temellerini ve veri çerçeveleri oluşturmak için yaygın yöntemleri öğreneceksiniz. Ardından, veri alt kümelerini almak için veri çerçevesinden satırları ve sütunları nasıl seçeceğinizi öğreneceksiniz.

Hepsi ve daha fazlası için haydi başlayalım.

Pandaları Yükleme ve İçe Aktarma

pandas üçüncü taraf bir veri analizi kitaplığı olduğundan, önce onu yüklemeniz gerekir. Projeniz için harici paketleri sanal ortamda kurmanız önerilir.

Python'un Anaconda dağıtımını kullanıyorsanız, paket yönetimi için conda kullanabilirsiniz.

 conda install pandas

Pandaları pip kullanarak da kurabilirsiniz:

 pip install pandas

Pandalar kitaplığı, bir bağımlılık olarak NumPy'yi gerektirir. Dolayısıyla, NumPy kurulu değilse, kurulum işlemi sırasında da kurulacaktır.

Pandaları yükledikten sonra çalışma ortamınıza aktarabilirsiniz. Genel olarak, pandalar pd takma adı altında içe aktarılır:

 import pandas as pd

Pandalarda DataFrame Nedir?

Pandalarda DataFrame Nedir?

Pandalardaki temel veri yapısı veri çerçevesidir . Veri çerçevesi, etiketli dizin ve adlandırılmış sütunlara sahip iki boyutlu bir veri dizisidir. Pandalar serisi adı verilen veri çerçevesindeki her sütun, ortak bir dizini paylaşır.

İşte önümüzdeki birkaç dakika içinde sıfırdan oluşturacağımız örnek bir veri çerçevesi. Bu veri çerçevesi, altı öğrencinin dört haftada ne kadar harcadığına ilişkin verileri içerir.

pd-dataframe-ex

Öğrencilerin isimleri satır etiketleridir. Ve sütunlar 'Hafta1' ila 'Hafta4' olarak adlandırılır. Tüm sütunların, dizin olarak da adlandırılan aynı satır etiketleri kümesini paylaştığına dikkat edin.

Pandas DataFrame Nasıl Oluşturulur

Pandalar veri çerçevesi oluşturmanın birkaç yolu vardır. Bu eğitimde, aşağıdaki yöntemleri tartışacağız:

  • NumPy dizilerinden veri çerçevesi oluşturma
  • Python sözlüğünden veri çerçevesi oluşturma
  • CSV dosyalarını okuyarak veri çerçevesi oluşturma

NumPy Dizilerinden

NumPy dizisinden bir veri çerçevesi oluşturalım.

Herhangi bir haftada her öğrencinin 0 ile 100 $ arasında bir harcama yaptığını varsayarak (6,4) şeklindeki veri dizisini oluşturalım. NumPy'nin random modülünden gelen randint() işlevi, belirli bir aralıkta [low,high) bir rasgele tamsayılar dizisi döndürür.

 import numpy as np np.random.seed(42) data = np.random.randint(0,101,(6,4)) print(data)
 array([[51, 92, 14, 71], [60, 20, 82, 86], [74, 74, 87, 99], [23, 2, 21, 52], [ 1, 87, 29, 37], [ 1, 63, 59, 20]])

Bir panda veri çerçevesi oluşturmak için, DataFrame yapıcısını kullanabilir ve gösterildiği gibi NumPy dizisini data bağımsız değişkeni olarak iletebilirsiniz:

 students_df = pd.DataFrame(data=data)

Şimdi, students_df türünü kontrol etmek için yerleşik type() işlevini çağırabiliriz. DataFrame nesnesi olduğunu görüyoruz.

 type(students_df) # pandas.core.frame.DataFrame
 print(students_df)
pandalar-veri çerçevesi-01

Varsayılan olarak, numRows - 1'e giden aralık indekslememiz olduğunu ve sütun etiketlerinin 0, 1, 2, …, numCols -1 olduğunu görüyoruz. Ancak bu okunabilirliği azaltır. Veri çerçevesine tanımlayıcı sütun adları ve satır etiketleri eklemek yardımcı olacaktır.

İki liste oluşturalım: biri öğrencilerin adlarını saklamak için, diğeri ise sütun etiketlerini saklamak için.

 students = ['Amy','Bob','Chris','Dave','Evelyn','Fanny'] cols = ['Week1','Week2','Week3','Week4']

DataFrame yapıcısını çağırırken, index ve columns sırasıyla kullanılacak satır etiketleri ve sütun etiketleri listelerine ayarlayabilirsiniz.

 students_df = pd.DataFrame(data = data,index = students,columns = cols)

Artık, açıklayıcı satır ve sütun etiketleriyle birlikte students_df veri çerçevesine sahibiz.

 print(students_df)
pandalar-veri çerçevesi-02

Veri çerçevesi hakkında eksik değerler ve veri türleri gibi bazı temel bilgileri almak için veri çerçevesi nesnesinde info() yöntemini çağırabilirsiniz.

 students_df.info()
resim-114

Bir Python Sözlüğünden

Python sözlüğünden bir panda veri çerçevesi de oluşturabilirsiniz.

Burada data_dict , öğrenci verilerini içeren sözlüktür:

  • Öğrencilerin isimleri anahtardır.
  • Her değer, her öğrencinin birinci ila dördüncü haftalar arasında ne kadar harcadığının bir listesidir.
 data_dict = {} students = ['Amy','Bob','Chris','Dave','Evelyn','Fanny'] for student,student_data in zip(students,data): data_dict[student] = student_data

Bir Python sözlüğünden bir veri çerçevesi oluşturmak için aşağıda gösterildiği gibi from_dict kullanın. İlk bağımsız değişken, verileri ( data_dict ) içeren sözlüğe karşılık gelir. Varsayılan olarak, veri çerçevesinin sütun adları olarak anahtarlar kullanılır. Tuşları satır etiketleri olarak ayarlamak istediğimiz için orient= 'index' ayarlayın.

 students_df = pd.DataFrame.from_dict(data_dict,orient='index') print(students_df)
pandas-dataframe-dan-dict

Sütun adlarını hafta sayısına değiştirmek için, sütunları cols listesine ayarladık:

 students_df = pd.DataFrame.from_dict(data_dict,orient='index',columns=cols) print(students_df)
pandalar-veri çerçevesi-03

CSV Dosyasında Pandas DataFrame'e Okuma

Öğrenci verilerinin bir CSV dosyası olduğunu varsayalım. Dosyadaki verileri bir pandas veri çerçevesine okumak için read_csv() işlevini kullanabilirsiniz. pd.read_csv('file-path') genel sözdizimidir, burada file-path CSV dosyasının yoludur. Kullanılacak sütun adları listesine names parametresini ayarlayabiliriz.

 students_df = pd.read_csv('/content/students.csv',names=cols)

Artık bir veri çerçevesi oluşturmayı öğrendiğimize göre, satırları ve sütunları nasıl seçeceğimizi öğrenelim.

Pandas DataFrame'den Sütunları Seçin

Bir veri çerçevesinden satırları ve sütunları seçmek için kullanabileceğiniz birkaç yerleşik yöntem vardır. Bu öğretici, bir veri çerçevesinden sütunları, satırları ve hem satırları hem de sütunları seçmenin en yaygın yollarını ele alacaktır.

Tek Sütun Seçme

Tek bir sütun seçmek için df_name[col_name] kullanabilirsiniz; burada col_name , sütunun adını gösteren dizedir.

Burada sadece 'Hafta1' sütununu seçiyoruz.

 week1_df = students_df['Week1'] print(week1_df)
tek kolon

Birden Çok Sütun Seçme

Veri çerçevesinden birden çok sütun seçmek için, seçilecek tüm sütun adlarının listesini iletin.

 odd_weeks = students_df[['Week1','Week3']] print(odd_weeks)
çoklu sütunlar

Sütun seçmek için bu yönteme ek olarak iloc() ve loc() yöntemlerini de kullanabilirsiniz. Daha sonra bir örnek kodlayacağız.

Pandas DataFrame'den Satırları Seçin

4-2

.iloc() Yöntemini Kullanma

iloc() yöntemini kullanarak satır seçmek için, tüm satırlara karşılık gelen indeksleri bir liste olarak iletin.

Bu örnekte, tek indeksteki satırları seçiyoruz.

 odd_index_rows = students_df.iloc[[1,3,5]] print(odd_index_rows)
tek sıralar

Ardından, veri çerçevesinin 0 ila 2 indeksindeki satırları içeren bir alt kümesini seçiyoruz, bitiş noktası 3 varsayılan olarak hariç tutuluyor.

 slice1 = students_df.iloc[0:3] print(slice1)
seçim satırları

.loc() Yöntemini Kullanma

loc() yöntemini kullanarak bir veri çerçevesinin satırlarını seçmek için, seçmek istediğiniz satırlara karşılık gelen etiketleri belirtmelisiniz.

 some_rows = students_df.loc[['Bob','Dave','Fanny']] print(some_rows)
bazı satırlar

Veri çerçevesinin satırları, 0, 1, 2, numRows -1'e kadar varsayılan aralık kullanılarak dizine ekleniyorsa, iloc() ve loc() kullanmak eşdeğerdir.

Pandas DataFrame'den Satırları ve Sütunları Seçin

Şimdiye kadar, bir pandas veri çerçevesinden satırları veya sütunları nasıl seçeceğinizi öğrendiniz. Ancak, bazen hem satırların hem de sütunların bir alt kümesini seçmeniz gerekebilir. Peki bunu nasıl yapıyorsun? iloc() ve loc() yöntemlerini kullanabilirsiniz.

Örneğin aşağıdaki kod parçasında 2. ve 3. indeksteki tüm satır ve sütunları seçiyoruz.

 subset_df1 = students_df.iloc[:,[2,3]] print(subset_df1)
veri çerçevesi-altkümesi

start:stop kullanmak, start up'tan stop içermeyen bir dilim oluşturur. Böylece, hem start ​​hem de stop değerlerini yok saydığınızda, dilim baştan başlar ve tüm satırları seçerek veri çerçevesinin sonuna kadar uzanır.

loc() yöntemini kullanırken, gösterildiği gibi, seçmek istediğiniz satırların ve sütunların etiketlerini girmeniz gerekir:

 subset_df2 = students_df.loc[['Amy','Evelyn'],['Week1','Week3']] print(subset_df2)
df-altkümesi

Burada subset_df2 Amy ve Evelyn'in 1. Hafta ve 3. Hafta kaydını içerir.

Çözüm

İşte bu eğitimde öğrendiklerinizin hızlı bir gözden geçirmesi:

  • Pandaları yükledikten sonra, onu pd takma adı altında içe aktarabilirsiniz. Bir pandas veri çerçevesi nesnesi oluşturmak için, pd.DataFrame(data) yapıcısını kullanabilirsiniz; burada data , N-boyutlu diziye veya verileri içeren yinelenebilir bir diziye başvurur. Sırasıyla isteğe bağlı dizin ve sütun parametrelerini ayarlayarak satır ve dizin ve sütun etiketlerini belirleyebilirsiniz.
  • pd.read_csv(path-to-the-file) kullanılması, dosyanın içeriğini bir veri çerçevesine okur.
  • Sütunlar, eksik değerlerin sayısı, veri türleri ve veri çerçevesinin boyutu hakkında bilgi almak için veri çerçevesi nesnesinde info() yöntemini çağırabilirsiniz.
  • Tek bir sütun seçmek için df_name[col_name] öğesini ve birden çok sütun seçmek için, belirli sütunu df_name[[col1,col2,...,coln]] .
  • loc() ve iloc() yöntemlerini kullanarak da sütunları ve satırları seçebilirsiniz.
  • iloc() yöntemi seçilecek satırların ve sütunların dizinini (veya dizin dilimini) alırken, loc() yöntemi satır ve sütun etiketlerini alır.

Bu eğitimde kullanılan örnekleri bu Colab not defterinde bulabilirsiniz.

Ardından, iş birliğine dayalı veri bilimi not defterlerinin bu listesine göz atın.