> For the complete documentation index, see [llms.txt](https://altero.gitbook.io/langchain-book-by-altero/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://altero.gitbook.io/langchain-book-by-altero/ch06-document-loader/04.csv.md).

# 04.CSV

### CSV

File [Comma-Separated Values (CSV)](https://www.google.com/url?q=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FComma-separated_values) adalah file teks yang dibatasi di mana nilainya dipisahkan oleh koma. Setiap baris dalam file adalah catatan data.

Setiap catatan terdiri dari satu atau lebih bidang yang dipisahkan oleh koma.

## CSVLoader

***

* Memuat data CSV, satu baris per dokumen.

```python
from langchain_community.document_loaders.csv_loader import CSVLoader

# membuat sebuah pemuat CSV
loader = CSVLoader(file_path = “./data/titanic.csv”)

# memuat data
docs = loader.load()

print(len(docs))
print(docs[0].metadata)
```

### Menyesuaikan penguraian dan pemuatan CSV

Lihat dokumentasi [modul csv](https://www.google.com/url?q=https%3A%2F%2Fdocs.python.org%2F3%2Flibrary%2Fcsv.html) untuk informasi lebih lanjut tentang **argumen csv** yang didukung.

```python
# Informasi Kolom:
# PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked

# Jalur file CSV
loader = CSVLoader(
    file_path="./data/titanic.csv",
    csv_args={
        "delimiter": ",",  # Pemisah
        "quotechar": '"',  # Karakter tanda petik
        "fieldnames": [
            "Passenger ID",
            "Survival (1: Survived, 0: Died)",
            "Passenger Class",
            "Name",
            "Sex",
            "Age",
            "Number of Siblings/Spouses Aboard",
            "Number of Parents/Children Aboard",
            "Ticket Number",
            "Fare",
            "Cabin",
            "Port of Embarkation",
        ],  # Nama bidang
    },
)

# Memuat data
docs = loader.load()

# mengeluarkan data
print(docs[1].page_content)
```

Gunakan argumen `source_column` untuk menentukan sumber dokumen yang dihasilkan di setiap baris; jika tidak, `file_path` digunakan sebagai sumber untuk semua dokumen.

Ini berguna ketika menggunakan dokumen yang dimuat dari file CSV dalam rantai yang menggunakan sumber untuk menjawab pertanyaan.

```python
loader = CSVLoader(
    file_path="./data/titanic.csv", source_column="PassengerId"
)  # Mengatur pemuat CSV, menentukan jalur file dan kolom sumber

docs = loader.load()  # Memuat data

print(docs[1])  # Output data
```

## UnstructuredCSVLoader

***

Anda juga dapat menggunakan `UnstructuredCSVLoader` untuk memuat tabel. Salah satu keuntungan menggunakan `UnstructuredCSVLoader` adalah ketika digunakan dalam mode `“elemen”`, representasi HTML tabel disediakan dalam metadata.

```python
from langchain_community.document_loaders.csv_loader import UnstructuredCSVLoader

# Membuat instance pemuat CSV yang tidak terstruktur
loader = UnstructuredCSVLoader(file_path="./data/titanic.csv", mode="elements")

# Memuat dokumen
docs = loader.load()

# Output metadata teks HTML untuk dokumen pertama
print(docs[0].metadata["text_as_html"][:1000])
```

```python
from langchain_community.document_loaders import DataFrameLoader

# Menyiapkan pemuat bingkai data, menentukan kolom konten halaman
loader = DataFrameLoader(df, page_content_column="Name")

# Memuat dokumen
docs = loader.load()

# Output data
print(docs[0].page_content)

# Menghasilkan metadata
print(docs[0].metadata)
```

```python
# pemuatan malas untuk tabel besar, tidak memuat seluruh tabel ke dalam memori
for row in loader.lazy_load():
    print(row)
    break # cetak hanya baris pertama
```
