Sangat mudah untuk mengubah daftar menjadi bingkai data panda:
import pandas as pd
df = pd.DataFrame([[1,2,3],[3,4,5]])
Tapi bagaimana cara mengubah df kembali menjadi daftar daftar?
lol = df.what_to_do_now?
print lol
# [[1,2,3],[3,4,5]]
Anda dapat mengakses array yang mendasarinya dan memanggil tolist
metodenya:
>>> df = pd.DataFrame([[1,2,3],[3,4,5]])
>>> lol = df.values.tolist()
>>> lol
[[1L, 2L, 3L], [3L, 4L, 5L]]
L
yang ditambahkan dalam output?df.to_numpy().tolist()
.Jika data memiliki label kolom dan indeks yang ingin Anda pertahankan, ada beberapa opsi.
Contoh data:
The
tolist()
metode yang dijelaskan dalam jawaban lainnya berguna tetapi hanya menghasilkan data inti - yang mungkin tidak cukup, tergantung pada kebutuhan Anda.Salah satu pendekatannya adalah dengan mengonversi
DataFrame
menjadi json menggunakandf.to_json()
dan kemudian menguraikannya lagi. Ini rumit tetapi memiliki beberapa keuntungan, karenato_json()
metode ini memiliki beberapa opsi yang berguna.Praktis tapi semoga bermanfaat.
Kabar baiknya adalah cukup mudah untuk membuat daftar untuk kolom dan baris:
Ini menghasilkan:
Jika
None
sebagai nama indeks mengganggu, ganti namanya:Kemudian:
sumber
DataFrame.itertuples()
atauDataFrame.to_records()
untuk semua ini?Saya tidak tahu apakah itu sesuai dengan kebutuhan Anda, tetapi Anda juga dapat melakukan:
Ini hanyalah array numpy dari modul ndarray, yang memungkinkan Anda melakukan semua hal array numpy biasa.
sumber
Saya ingin mempertahankan indeks, jadi saya menyesuaikan jawaban asli untuk solusi ini:
Sekarang Anda dapat menempelkannya di tempat lain (misalnya untuk menempelkan ke pertanyaan Stack Overflow) dan kemudian membuatnya kembali:
sumber
Mungkin ada sesuatu yang berubah tetapi ini mengembalikan daftar ndarrays yang melakukan apa yang saya butuhkan.
sumber
Catatan: Saya telah melihat banyak kasus di Stack Overflow di mana mengonversi Seri Pandas atau DataFrame ke array NumPy atau daftar Python biasa sama sekali tidak diperlukan. Jika Anda baru mengenal pustaka, pertimbangkan untuk memeriksa ulang apakah fungsionalitas yang Anda perlukan sudah ditawarkan oleh objek Pandas tersebut.
Mengutip komentar oleh @jpp:
Jika Pandas DataFrame / Series tidak berfungsi, Anda dapat menggunakan metode
DataFrame.to_numpy
dan bawaanSeries.to_numpy
.sumber
for elem in some_series.values.tolist():
karena mereka tidak tahu bahwa Anda dapat mengulang elemen rangkaian. Saya tidak yakin apa yang mengerikan tentang jawaban ini.Ini sangat sederhana:
sumber
DataFrame.values
atauDataFrame.to_numpy()
? Tidak peduli fakta bahwa itu membuat array NumPy, bukan daftar Python biasa.Kita bisa menggunakan fungsi DataFrame.iterrows () untuk mengulangi setiap baris dari Dataframe yang diberikan dan membuat daftar dari data setiap baris:
Kami berhasil mengekstrak setiap baris dari bingkai data yang diberikan ke dalam daftar
sumber