Traffine I/O

Bahasa Indonesia

2022-11-18

Mengkonversi DataFrame Pandas ke dalam Dictionary

Introduction

In this article, I will discuss the process of converting a Pandas DataFrame to a dictionary.

Pengantar

Dalam artikel ini, saya akan membahas proses mengkonversi sebuah DataFrame Pandas ke dalam sebuah dictionary.

Metode to_dict

Metode utama untuk mengkonversi sebuah DataFrame Pandas ke dalam sebuah dictionary adalah dengan menggunakan fungsi to_dict(). Syntax dari fungsi ini adalah sebagai berikut:

python
dataframe.to_dict(orient='dict', into=dict)

Metode ini memberikan fleksibilitas dalam format output melalui penggunaan parameter orient dan into.

Orient

Kita akan menjelajahi parameter orient dan nilai-nilai yang mungkin.

dict

Mengatur parameter orient ke dict akan membuat sebuah dictionary dari dictionaries, dengan keys pada dictionary luar merepresentasikan nama-nama kolom, dan dictionaries dalamnya mengandung data yang sesuai.

python
import pandas as pd

data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)

result = df.to_dict(orient='dict')
print(result)
{'A': {0: 1, 1: 2, 2: 3}, 'B': {0: 4, 1: 5, 2: 6}}

list

Ketika orient diatur ke list, dictionary yang dihasilkan akan memiliki nama-nama kolom sebagai keys dan data kolom sebagai list dari values.

python
result = df.to_dict(orient='list')
print(result)
{'A': [1, 2, 3], 'B': [4, 5, 6]}

series

Dengan orient diatur ke series, output akan berupa dictionary dari objek Series Pandas, dengan nama-nama kolom sebagai keys.

python
result = df.to_dict(orient='series')
print(result)
{'A': 0    1
1    2
2    3
Name: A, dtype: int64, 'B': 0    4
1    5
2    6
Name: B, dtype: int64}

split

Orientasi split menghasilkan sebuah dictionary dengan tiga keys: 'index', 'columns', dan 'data'. Nilai untuk keys ini adalah label-index, nama-nama kolom, dan nilai-nilai data, secara berturut-turut.

python
result = df.to_dict(orient='split')
print(result)
{'index': [0, 1, 2], 'columns': ['A', 'B'], 'data': [[1, 4], [2, 5], [3, 6]]}

records

Ketika orient diatur ke records, output adalah sebuah list dari dictionaries, dengan setiap dictionary merepresentasikan sebuah baris pada DataFrame. Keys pada setiap dictionary sesuai dengan nama-nama kolom.

python
result = df.to_dict(orient='records')
print(result)
[{'A': 1, 'B': 4}, {'A': 2, 'B': 5}, {'A': 3, 'B': 6}]

index

Mengatur parameter orient ke index membuat sebuah dictionary dari dictionaries, dengan keys pada dictionary luar merepresentasikan label-index dan dictionaries dalamnya mengandung data yang sesuai.

python
result = df.to_dict(orient='index')
print(result)
{0: {'A': 1, 'B': 4}, 1: {'A': 2, 'B': 5}, 2: {'A': 3, 'B': 6}}

Mengkonversi DataFrame ke OrderedDict

Secara default, fungsi to_dict() mengembalikan sebuah dictionary standar pada Python. Namun, Anda juga dapat mengkonversi DataFrame ke sebuah OrderedDict dengan mengatur parameter into menjadi collections.OrderedDict. Ordered dictionaries menjaga urutan dari keys pada dictionary, yang dapat berguna dalam beberapa skenario.

Mari kita lihat sebuah contoh mengkonversi sebuah DataFrame ke sebuah OrderedDict dengan mengatur parameter orient ke dict.

python
import pandas as pd
from collections import OrderedDict

data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)

result = df.to_dict(orient='dict', into=OrderedDict)
print(result)
OrderedDict([('A', {0: 1, 1: 2, 2: 3}), ('B', {0: 4, 1: 5, 2: 6})])

Seperti yang bisa dilihat, output adalah sebuah OrderedDict dengan nama-nama kolom ('A' dan 'B') sebagai keys dan data yang sesuai sebagai dictionaries dalam. Urutan keys dipertahankan pada OrderedDict.

Anda juga dapat mengkonversi DataFrame ke sebuah OrderedDict dengan menggunakan nilai orient lainnya. Sebagai contoh, mari kita konversi DataFrame dengan orient diatur ke records:

python
result = df.to_dict(orient='records', into=OrderedDict)
print(result)
[OrderedDict([('A', 1), ('B', 4)]), OrderedDict([('A', 2), ('B', 5)]), OrderedDict([('A', 3), ('B', 6)])]

Pada kasus ini, output adalah sebuah list dari ordered dictionaries, dengan setiap dictionary merepresentasikan sebuah baris pada DataFrame. Urutan keys dipertahankan pada setiap dictionary.

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!