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:
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.
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.
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.
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.
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.
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.
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
.
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
:
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.