# Tabular verileri yükle

Tabular veri seti, satırların bir örneği, sütunların ise bir özelliği (sürekli veya kategorik olabilir) temsil ettiği, satır ve sütunlarda saklanan herhangi bir veriyi tanımlamak için kullanılan genel bir veri setidir. Bu veri setleri genellikle CSV dosyalarında, Pandas DataFrames'lerinde ve veritabanı tablolarında saklanır. Bu kılavuz, bir tabular veri setini aşağıdakilerden yüklemenin ve oluşturmanın nasıl yapılacağını gösterecektir:

- CSV dosyaları
- Pandas Veri Çerçeveleri
- HDF5 dosyaları
- Veritabanları

## CSV dosyaları

🤗 Datasets, [load_dataset()](/docs/datasets/main/tr/package_reference/loading_methods#datasets.load_dataset) metodunda genel `csv` veri seti oluşturucu adını belirterek CSV dosyalarını okuyabilir. Birden fazla CSV dosyası yüklemek için bunları bir liste olarak `data_files` parametresine iletin:

```py
>>> from datasets import load_dataset
>>> dataset = load_dataset("csv", data_files="my_file.csv")

# load multiple CSV files
>>> dataset = load_dataset("csv", data_files=["my_file_1.csv", "my_file_2.csv", "my_file_3.csv"])
```

Belirli CSV dosyalarını eğitim ve test bölümlerine eşleyebilirsiniz:

```py
>>> dataset = load_dataset("csv", data_files={"train": ["my_train_file_1.csv", "my_train_file_2.csv"], "test": "my_test_file.csv"})
```

Uzak CSV dosyalarını yüklemek için bunun yerine URL'leri iletin:

```py
>>> base_url = "https://huggingface.co/datasets/lhoestq/demo1/resolve/main/data/"
>>> dataset = load_dataset('csv', data_files={"train": base_url + "train.csv", "test": base_url + "test.csv"})
```

Sıkıştırılmış CSV dosyalarını yüklemek için:

```py
>>> url = "https://domain.org/train_data.zip"
>>> data_files = {"train": url}
>>> dataset = load_dataset("csv", data_files=data_files)
```

## Pandas Veri Çerçeveleri

🤗 Datasets, [from_pandas()](/docs/datasets/main/tr/package_reference/main_classes#datasets.Dataset.from_pandas) yöntemiyle [Pandas DataFrames](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html) içinden veri setlerini yüklemeyi de destekler:

```py
>>> from datasets import Dataset
>>> import pandas as pd

# create a Pandas DataFrame
>>> df = pd.read_csv("https://huggingface.co/datasets/imodels/credit-card/raw/main/train.csv")
>>> df = pd.DataFrame(df)
# load Dataset from Pandas DataFrame
>>> dataset = Dataset.from_pandas(df)
```

Veri seti bölmesinin adını belirtmek için `splits` parametresini kullanın:

```py
>>> train_ds = Dataset.from_pandas(train_df, split="train")
>>> test_ds = Dataset.from_pandas(test_df, split="test")
```

Veri seti beklenildiği gibi görünmüyorsa, [veri seti özelliklerinizi açıkça belirtmelisiniz](loading#specify-features). Bir [pandas.Series](https://pandas.pydata.org/docs/reference/api/pandas.Series.html) her zaman Arrow'un bir veri türünü otomatik olarak çıkarabilmesi için yeterli bilgiyi taşımaz. Örneğin, bir DataFrame'in uzunluğu `0` ise veya Series yalnızca `None/NaN` nesneleri içeriyorsa, tür `null` olarak ayarlanır.

## HDF5 dosyaları

[HDF5](https://www.hdfgroup.org/solutions/hdf5/) dosyaları, bilimsel hesaplama ve makine öğrenmesinde büyük miktarda sayısal verinin depolanması için yaygın olarak kullanılır. 🤗 Datasets ile HDF5 dosyalarının yüklenmesi, CSV dosyalarının yüklenmesine benzerdir:

```py
>>> from datasets import load_dataset
>>> dataset = load_dataset("hdf5", data_files="data.h5")
```

HDF5 yükleyicinin, dosyanın "tablolu" bir yapıya sahip olduğunu varsaydığını, yani dosyadaki tüm veri kümelerinin ilk boyutunda (aynı sayıda) satıra sahip olduğunu belirtmek gerekir.

## Veritabanları

Veritabanlarında saklanan veri kümeleri genellikle SQL sorguları ile erişilir. 🤗 Datasets ile bir veritabanına bağlanabilir, ihtiyacınız olan verileri sorgulayabilir ve bunlardan bir veri kümesi oluşturabilirsiniz. Ardından, veri kümenizi eğitim için hazırlamak üzere 🤗 Datasets'in tüm işleme özelliklerini kullanabilirsiniz.

### SQLite

SQLite, hızlı ve kurulumu kolay, küçük ve hafif bir veritabanıdır. İsterseniz mevcut bir veritabanını kullanabilir veya sıfırdan başlayarak adımları takip edebilirsiniz.

New York Times'tan bu [Covid-19 verisi](https://github.com/nytimes/covid-19-data/blob/master/us-states.csv) ile hızlı bir SQLite veritabanı oluşturarak başlayın:

```py
>>> import sqlite3
>>> import pandas as pd

>>> conn = sqlite3.connect("us_covid_data.db")
>>> df = pd.read_csv("https://raw.githubusercontent.com/nytimes/covid-19-data/master/us-states.csv")
>>> df.to_sql("states", conn, if_exists="replace")
```

Bu, artık bir veri setine yükleyebileceğiniz `us_covid_data.db` veritabanında bir `states` tablosu oluşturur.

Veritabanına bağlanmak için veritabanınızı tanımlayan [URI dizesine](https://docs.sqlalchemy.org/en/13/core/engines.html#database-urls) ihtiyacınız olacaktır. URI ile bir veritabanına bağlanmak, döndürülen veri setini önbelleğe alır. URI dizesi her veritabanı diyalekti için farklıdır, bu nedenle kullandığınız veritabanına ait [Veritabanı URL'lerini](https://docs.sqlalchemy.org/en/13/core/engines.html#database-urls) kontrol etmeyi unutmayın.

SQLite için:

```py
>>> uri = "sqlite:///us_covid_data.db"
```

Tablo adını ve URI'yi [from_sql()](/docs/datasets/main/tr/package_reference/main_classes#datasets.Dataset.from_sql) işlevine ileterek tabloyu yükleyin:

```py
>>> from datasets import Dataset

>>> ds = Dataset.from_sql("states", uri)
>>> ds
Dataset({
    features: ['index', 'date', 'state', 'fips', 'cases', 'deaths'],
    num_rows: 54382
})
```

Ardından [filter()](/docs/datasets/main/tr/package_reference/main_classes#datasets.Dataset.filter) gibi 🤗 Datasets işleme özelliklerinin tümünü kullanabilirsiniz:

```py
>>> ds.filter(lambda x: x["state"] == "California")
```

Bir tablonun tamamı yerine bir SQL sorgusundan veri seti yükleyebilirsiniz; bu, birden fazla tabloyu sorgulamak ve birleştirmek için kullanışlıdır.

Sorgunuzu ve URI'yi [from_sql()](/docs/datasets/main/tr/package_reference/main_classes#datasets.Dataset.from_sql) işlevine ileterek veri setini yükleyin:

```py
>>> from datasets import Dataset

>>> ds = Dataset.from_sql('SELECT * FROM states WHERE state="California";', uri)
>>> ds
Dataset({
    features: ['index', 'date', 'state', 'fips', 'cases', 'deaths'],
    num_rows: 1019
})
```

Ardından [filter()](/docs/datasets/main/tr/package_reference/main_classes#datasets.Dataset.filter) gibi 🤗 Datasets işleme özelliklerinin tümünü kullanabilirsiniz:

```py
>>> ds.filter(lambda x: x["cases"] > 10000)
```

### PostgreSQL

Bir PostgreSQL veritabanından veri seti bağlayıp yükleyebilirsiniz; ancak bu örnek yalnızca bir defterde (notebook) çalıştırılmak üzere tasarlandığı için belgede doğrudan nasıl yapılacağını göstermiyoruz. Bunun yerine, bir PostgreSQL sunucusunun nasıl kurulup yapılandırılacağını bu [defterde](https://colab.research.google.com/github/nateraw/huggingface-hub-examples/blob/main/sql_with_huggingface_datasets.ipynb#scrollTo=d83yGQMPHGFi) inceleyin!

PostgreSQL veritabanınızı kurduktan sonra, bir tablodan veya sorgudan veri seti yüklemek için [from_sql()](/docs/datasets/main/tr/package_reference/main_classes#datasets.Dataset.from_sql) yöntemini kullanabilirsiniz.

