Örnekle Pandalar read_csv()
Pandas'ta CSV'yi içe aktar
TensorFlow eğitimi sırasında yetişkinlere yönelik veri kümesini kullanacaksınız. Genellikle sınıflandırma göreviyle birlikte kullanılır. Bu URL'de mevcut https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
Veriler CSV formatında saklanır. Bu veri kümesi sekiz kategorik değişken içerir:
Bu veri kümesi 8 kategorik değişken içerir:
- çalışma sınıfı
- eğitim
- evlilik
- işgal
- ilişki
- yarış
- seks
- ana vatan
Ve 6 sürekli değişken:
- yaş
- fnlwgt
- eğitim_num
- Sermaye kazancı
- sermaye_kaybı
- saat_hafta
Pandalar read_csv() Yöntemi
Bir CSV veri kümesini içe aktarmak için pd.read_csv() nesnesini kullanabilirsiniz. İçerideki temel argüman şu:
Pandalar read_csv() Söz Dizimi
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- dosya_yolu_veya_tampon: Verilerin bulunduğu yol veya URL
- eylül=', ': Kullanılacak sınırlayıcıyı tanımlayın
- 'isimler=Yok': Sütunlara ad verin. Veri kümesinde on sütun varsa on ad aktarmanız gerekir
- 'index_col=Yok': Evet ise, ilk sütun satır dizini olarak kullanılır
- 'skipinitialspace=Yanlış': Sınırlayıcıdan sonraki boşlukları atlayın.
Read_csv() hakkında daha fazla bilgi için lütfen resmi belgelere bakın:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
Pandalar read_csv() Örnek
## Import csv import pandas as pd ## Define path data COLUMNS = ['age','workclass', 'fnlwgt', 'education', 'education_num', 'marital', 'occupation', 'relationship', 'race', 'sex', 'capital_gain', 'capital_loss', 'hours_week', 'native_country', 'label'] PATH = "https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data" df_train = pd.read_csv(PATH, skipinitialspace=True, names = COLUMNS, index_col=False) df_train.shape
Çıktı:
(32561, 15)
Pandalar groupby() Yöntemi
Verileri görmenin kolay bir yolu groupby yöntemini kullanmaktır. Bu yöntem, verileri gruba göre özetlemenize yardımcı olabilir. Aşağıda groupby() yöntemiyle kullanılabilen yöntemlerin bir listesi bulunmaktadır:
- saymak: saymak
- dk: dk
- maksimum: maksimum
- demek: demek
- medyan: medyan
- standart sapma: sdt
- vb
Groupby() içinde, yöntemi uygulamak istediğiniz sütunu kullanabilirsiniz.
Yetişkinlere yönelik veri kümesiyle tek bir gruplamaya göz atalım. Gelir türüne göre tüm sürekli değişkenlerin ortalamasını alacaksınız, yani 50'in üstü veya 50'in altı:
df_train.groupby(['label']).mean()
etiket | yaş | fnlwgt | eğitim_num | Sermaye kazancı | sermaye_kaybı | saat_hafta |
---|---|---|---|---|---|---|
<=50K | 36.783738 | 190340.86517 | 9.595065 | 148.752468 | 53.142921 | 38.840210 |
> 50K | 44.249841 | 188005.00000 | 11.611657 | 4006.142456 | 195.001530 | 45.473026 |
Hane türüne göre minimum yaşı alabilirsiniz:
df_train.groupby(['label'])['age'].min() label <=50K 17 >50K 19 Name: age, dtype: int64
Ayrıca birden çok sütuna göre gruplandırabilirsiniz. Mesela hane tipine ve medeni duruma göre maksimum sermaye kazancını elde edebilirsiniz.
df_train.groupby(['label', 'marital'])['capital_gain'].max() label marital <=50K Divorced 34095 Married-AF-spouse 2653 Married-civ-spouse 41310 Married-spouse-absent 6849 Never-married 34095 Separated 7443 Widowed 6849 >50K Divorced 99999 Married-AF-spouse 7298 Married-civ-spouse 99999 Married-spouse-absent 99999 Never-married 99999 Separated 99999 Widowed 99999 Name: capital_gain, dtype: int64
Groupby'ı takip eden bir çizim oluşturabilirsiniz. Bunu yapmanın bir yolu, gruplamadan sonra bir çizim kullanmaktır.
Daha mükemmel bir çizim oluşturmak için, aynı çok düzeyli dizine sahip olmak için, ortalama()'dan sonra unstack() işlevini kullanacaksınız veya değerleri 50k'den düşük ve 50k'nin üzerindeki gelire göre birleştireceksiniz. Bu durumda arsada 14 (2*7) yerine iki grup olacaktır.
Eğer kullanıyorsanız Jupyter defter, %matplotlib'i satır içine eklediğinizden emin olun, aksi takdirde hiçbir çizim görüntülenmeyecektir
%matplotlib inline df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack() df_plot
ÖZET
- CSV veri kümesini içe aktarmak için Pandalarpd.read_csv() nesnesini kullanabilirsiniz.
- Groupby() yöntemi, verileri gruba göre özetlemenize yardımcı olabilir.
- Ayrıca birden çok sütuna göre gruplandırabilirsiniz. Mesela hane tipine ve medeni duruma göre maksimum sermaye kazancını elde edebilirsiniz.