Saya memiliki DataFrame berikut:
pelanggan item1 item2 item3 1 tomat susu apel 2 kentang air jeruk 3 keripik mangga jus
yang ingin saya terjemahkan ke daftar kamus per baris
rows = [{'customer': 1, 'item1': 'apple', 'item2': 'milk', 'item3': 'tomato'},
{'customer': 2, 'item1': 'water', 'item2': 'orange', 'item3': 'potato'},
{'customer': 3, 'item1': 'juice', 'item2': 'mango', 'item3': 'chips'}]
Jawaban:
Edit
Seperti yang disebutkan oleh John Galt dalam jawabannya , Anda sebaiknya menggunakan
df.to_dict('records')
. Ini lebih cepat daripada melakukan transpos secara manual.Jawaban asli
Gunakan
df.T.to_dict().values()
, seperti di bawah ini:sumber
df.T.to_dict().values()
, saya kehilangan urutan jugaunicodecsv.DictReader
Gunakan
df.to_dict('records')
- memberikan output tanpa harus transpos secara eksternal.sumber
i.e. is the nth entry in the resulting list always also the nth column?
kolom ke - n atau baris ke-n?Sebagai perpanjangan dari jawaban John Galt -
Untuk DataFrame berikut,
Jika Anda ingin mendapatkan daftar kamus termasuk nilai indeks, Anda dapat melakukan sesuatu seperti,
Yang menghasilkan kamus kamus di mana kunci dari kamus induk adalah nilai indeks. Dalam kasus khusus ini,
sumber
Jika Anda tertarik hanya memilih satu kolom, ini akan berfungsi.
Di bawah ini TIDAK akan berfungsi dan menghasilkan TypeError: tipe tidak didukung:. Saya percaya ini karena sedang mencoba untuk mengubah seri menjadi dict dan bukan Frame Data ke dict.
Saya memiliki persyaratan untuk hanya memilih satu kolom dan mengonversinya ke daftar dicts dengan nama kolom sebagai kunci dan terjebak pada ini untuk sedikit jadi saya pikir saya akan berbagi.
sumber