Saya memiliki DataFrame dengan empat kolom. Saya ingin mengonversi DataFrame ini ke kamus python. Saya ingin elemen kolom pertama keys
dan elemen kolom lain di baris yang sama values
.
DataFrame:
ID A B C
0 p 1 3 2
1 q 4 3 2
2 r 4 0 9
Outputnya harus seperti ini:
Kamus:
{'p': [1,3,2], 'q': [4,3,2], 'r': [4,0,9]}
python
pandas
dictionary
dataframe
Pangeran Bhatti
sumber
sumber
Dataframe.to_dict()
?Dataframe.to_dict()
akan membuatA,B,C
kunci bukanp,q,r
Jawaban:
The
to_dict()
metode menetapkan nama kolom sebagai kunci kamus sehingga Anda akan perlu untuk membentuk kembali DataFrame Anda sedikit. Mengatur kolom 'ID' sebagai indeks dan kemudian mentransposisi DataFrame adalah salah satu cara untuk mencapai ini.to_dict()
juga menerima argumen 'orient' yang Anda perlukan untuk menampilkan daftar nilai untuk setiap kolom. Jika tidak, kamus formulir{index: value}
akan dikembalikan untuk setiap kolom.Langkah-langkah ini dapat dilakukan dengan baris berikut:
Jika diperlukan format kamus yang berbeda, berikut adalah contoh argumen yang mungkin berorientasi. Pertimbangkan DataFrame sederhana berikut ini:
Maka opsinya adalah sebagai berikut.
dict - default: nama kolom adalah kunci, nilainya kamus dari pasangan indeks:
daftar - kunci adalah nama kolom, nilai adalah daftar data kolom
'daftar' seperti seri , tetapi nilainya Seri
split -split kolom / data / indeks sebagai kunci dengan nilai-nilai menjadi nama kolom, nilai data menurut baris dan label indeks masing-masing
catatan - setiap baris menjadi kamus di mana kuncinya adalah nama kolom dan nilai adalah data di dalam sel
indeks - seperti 'catatan', tetapi kamus kamus dengan kunci sebagai label indeks (bukan daftar)
sumber
df.set_index('ID').T.to_dict('list')
Coba gunakan
Zip
Keluaran:
sumber
Ikuti langkah ini:
Misalkan dataframe Anda adalah sebagai berikut:
1. Gunakan
set_index
untuk mengaturID
kolom sebagai indeks dataframe.2. Gunakan
orient=index
parameter untuk memiliki indeks sebagai kunci kamus.Hasilnya adalah sebagai berikut:
3. Jika Anda perlu memiliki setiap sampel sebagai daftar jalankan kode berikut. Tentukan urutan kolom
sumber
Jika Anda tidak keberatan dengan nilai kamus sebagai tupel, Anda dapat menggunakannya untuk:
sumber
seharusnya kamus seperti:
diperlukan dari kerangka data seperti:
Cara paling sederhana adalah dengan melakukan:
cuplikan kerja di bawah ini:
sumber
Untuk saya gunakan (nama simpul dengan posisi xy) saya menemukan jawaban @ user4179775 untuk yang paling bermanfaat / intuitif:
Tambahan
Saya kemudian kembali ke masalah ini, untuk pekerjaan lain, tetapi terkait,. Berikut adalah pendekatan yang lebih dekat mencerminkan jawaban yang diterima [luar biasa].
Konversi bingkai data Pandas ke [daftar], {dict}, {dict of {dict}}, ...
Per jawaban yang diterima:
Dalam kasus saya, saya ingin melakukan hal yang sama tetapi dengan kolom yang dipilih dari kerangka data Pandas, jadi saya perlu mengiris kolom. Ada dua pendekatan.
(lihat: Konversi panda ke kamus dengan mendefinisikan kolom yang digunakan untuk nilai-nilai kunci )
atau
yang kemudian dapat digunakan untuk membuat kamus kamus
sumber
DataFrame.to_dict()
mengkonversi DataFrame ke kamus.Contoh
Lihat Dokumentasi ini untuk detailnya
sumber