Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menukar Pandas DataFrame kepada Kamus dengan Orientasi Berbeza?

Bagaimana untuk Menukar Pandas DataFrame kepada Kamus dengan Orientasi Berbeza?

Linda Hamilton
Linda Hamiltonasal
2024-12-06 03:57:121060semak imbas

How to Convert a Pandas DataFrame to a Dictionary with Different Orientations?

Menukar Pandas DataFrame kepada Kamus

Untuk menukar Pandas DataFrame kepada kamus, gunakan kaedah to_dict(). Secara lalai, kaedah ini menggunakan nama lajur DataFrame sebagai kunci kamus dan mencipta kamus indeks: pasangan data untuk setiap lajur.

df.to_dict()

Menyesuaikan Output Kamus

Untuk mendapatkan senarai nilai untuk setiap lajur dan bukannya kamus pasangan index:data, gunakan hujah orient. Berikut ialah orientasi yang tersedia:

  • dikt: Orientasi lalai (nama lajur sebagai kunci, indeks: pasangan data sebagai nilai)
  • senarai: Kunci ialah nama lajur, nilai ialah senarai lajur data
  • siri: Kekunci ialah nama lajur, nilai ialah objek Siri yang mengandungi data
  • pecah: Pisahkan lajur/data/indeks kepada kunci berasingan
  • rekod: Setiap baris menjadi kamus dengan nama lajur sebagai kunci dan nilai data sebagai nilai
  • indeks: Serupa dengan 'rekod', tetapi kunci ialah label indeks dan bukannya senarai

Contoh

Pertimbangkan DataFrame berikut:

df = pd.DataFrame({'ID': ['p', 'q', 'r'], 'A': [1, 4, 4], 'B': [3, 3, 0], 'C': [2, 2, 9]})

Untuk menukar DataFrame ini ke kamus dengan 'ID' sebagai kunci dan nilai lajur lain sebagai senarai, gunakan kod berikut:

df.set_index('ID').T.to_dict('list')

Ini akan mengembalikan kamus berikut:

{'p': [1, 3, 2], 'q': [4, 3, 2], 'r': [4, 0, 9]}

Orientasi Lain

Berikut ialah contoh yang berbeza orientasi:

dikt:

df.to_dict('dict')

Output:

{'ID': {'p': 'p', 'q': 'q', 'r': 'r'},
 'A': {0: 1, 1: 4, 2: 4},
 'B': {0: 3, 1: 3, 2: 0},
 'C': {0: 2, 1: 2, 2: 9}}

l ist:

df.to_dict('list')

Output:

{'ID': ['p', 'q', 'r'], 'A': [1, 4, 4], 'B': [3, 3, 0], 'C': [2, 2, 9]}

siri:

df.to_dict('series')

Output :

{'ID': 0    p
 1    q
 2    r
 Name: ID, dtype: object,
 'A': 0    1
 1    4
 2    4
 Name: A, dtype: int64,
 'B': 0    3
 1    3
 2    0
 Name: B, dtype: int64,
 'C': 0    2
 1    2
 2    9
 Name: C, dtype: int64}

pecah:

df.to_dict('split')

Output:

{'columns': ['ID', 'A', 'B', 'C'], 'data': [['p', 1, 3, 2], ['q', 4, 3, 2], ['r', 4, 0, 9]], 'index': [0, 1, 2]}

rekod :

df.to_dict('records')

Output:

[{'ID': 'p', 'A': 1, 'B': 3, 'C': 2}, {'ID': 'q', 'A': 4, 'B': 3, 'C': 2}, {'ID': 'r', 'A': 4, 'B': 0, 'C': 9}]

indeks:

df.to_dict('index')

Output:

{0: {'ID': 'p', 'A': 1, 'B': 3, 'C': 2},
 1: {'ID': 'q', 'A': 4, 'B': 3, 'C': 2},
 2: {'ID': 'r', 'A': 4, 'B': 0, 'C': 9}}

Atas ialah kandungan terperinci Bagaimana untuk Menukar Pandas DataFrame kepada Kamus dengan Orientasi Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn