Saya memiliki dokumen excel yang terlihat seperti ini ..
cluster load_date budget actual fixed_price
A 1/1/2014 1000 4000 Y
A 2/1/2014 12000 10000 Y
A 3/1/2014 36000 2000 Y
B 4/1/2014 15000 10000 N
B 4/1/2014 12000 11500 N
B 4/1/2014 90000 11000 N
C 7/1/2014 22000 18000 N
C 8/1/2014 30000 28960 N
C 9/1/2014 53000 51200 N
Saya ingin dapat mengembalikan konten kolom 1 - cluster sebagai daftar, jadi saya bisa menjalankan loop for di atasnya, dan membuat lembar kerja excel untuk setiap cluster.
Apakah mungkin, untuk mengembalikan konten seluruh baris ke daftar? misalnya
list = [], list[column1] or list[df.ix(row1)]
.tolist()
untuk mengubahnya menjadi daftar python.values
TIDAK ADA PANJANG menjadi metode yang disukai untuk mengakses array numpy yang mendasarinya. Lihat jawaban ini .df.to_numpy().tolist()
harus baik untuk sebagian besar kasus penggunaan.list(x)
Jawaban:
Kolom DataFrame Pandas adalah Seri Pandas saat Anda menariknya, yang kemudian dapat Anda panggil
x.tolist()
untuk mengubahnya menjadi daftar Python. Atau Anda melemparkannyalist(x)
.Keluaran:
sumber
Ini mengembalikan array numpy:
Ini mengembalikan array nilai unik yang numpy :
Anda juga bisa menggunakan numpy untuk mendapatkan nilai unik, meskipun ada perbedaan antara kedua metode:
sumber
Contoh konversi:
Numpy Array -> Panda Data Frame -> Daftar dari satu Kolom Panda
Array Numpy
Ubah array numpy menjadi bingkai data Panda
Konversi satu Bingkai Panda ke daftar
pdToList = list(dataPd['2'])
sumber
df = pd.DataFrame(data=[[10, 20, 30], [20, 30, 60], [30, 60, 90]])
lebih mudah? Juga, perhatikan nama variabel dan spasi putih yang mengikuti konvensi gaya Python. Iterate over list sebagai bukti Apa yang membuktikannya, tepatnya? Itu daftar?Karena pertanyaan ini mendapatkan banyak perhatian dan ada beberapa cara untuk memenuhi tugas Anda, izinkan saya menyajikan beberapa opsi.
Semua itu hanya satu kalimat;)
Dimulai dengan:
Tinjauan potensi operasi:
kode:
seperti yang ditunjukkan oleh cs95 metode lain harus lebih disukai daripada
.values
atribut panda dari panda versi 0.24 pada lihat di sini . Saya menggunakannya di sini, karena kebanyakan orang akan (pada 2019) masih memiliki versi yang lebih lama, yang tidak mendukung rekomendasi baru. Anda dapat memeriksa versi Anda denganprint(pd.__version__)
sumber
Jika kolom Anda hanya memiliki satu nilai, sesuatu seperti
pd.series.tolist()
akan menghasilkan kesalahan. Untuk menjamin itu akan bekerja untuk semua kasus, gunakan kode di bawah ini:sumber
Dengan asumsi nama kerangka data setelah membaca lembar excel adalah
df
, ambil daftar kosong (misalnyadataList
), beralih melalui baris data baris demi baris dan tambahkan ke daftar kosong Anda seperti-Atau,
Tidak, jika Anda mencetak
dataList
, Anda akan mendapatkan setiap baris sebagai daftar didataList
.sumber
lower_case_with_underscores
gaya. Apa kelebihan yang dimiliki solusi ini dibandingkan yang ada, tepatnya? Juga, saya benar-benar mencegah penggunaan akses atribut-style pada Series dan DataFrames.sumber