Lebih
Bagaimana untuk mendapatkan nilai dari sel dataframe?
Aku telah membangun sebuah kondisi bahwa ekstrak tepat satu baris dari data frame:
d2 = df[(df['l_ext']==l_ext) & (df['item']==item) & (df['wn']==wn) & (df['wd']==1)]
Sekarang saya ingin mengambil nilai dari kolom tertentu:
val = d2['col_name']
Tapi akibatnya saya mendapatkan sebuah frame data yang berisi satu baris dan satu kolom (yaitu satu sel). Hal ini tidak apa yang saya butuhkan. Aku butuh satu nilai (satu float number). Bagaimana saya bisa melakukan itu di panda?
289
10
Jika anda memiliki DataFrame dengan hanya satu baris, maka akses pertama (hanya) turut sebagai Rangkaian menggunakan
iloc
, dan kemudian nilai menggunakan nama kolom:Ini adalah akses cepat untuk skalar
Anda dapat mengubah 1x1 dataframe menjadi numpy array, maka akses pertama dan satu-satunya nilai dari array:
Kebanyakan jawaban adalah dengan menggunakan
iloc
yang baik untuk seleksi oleh posisi.Jika anda membutuhkan pilihan-by-label
loc
akan menjadi lebih nyaman.Sepertinya perubahan setelah panda 10.1/13.1
Saya upgrade dari 10.1 untuk 13.1, sebelum iloc tidak tersedia.
Sekarang dengan 13.1,
iloc[0]['label']
mendapat satu nilai array bukan skalar.Seperti ini:
Output:
Aku butuh nilai dari satu sel, yang dipilih oleh kolom dan indeks nama. Solusi ini bekerja untuk saya:
original_conversion_frequency.loc[1,:].nilai-nilai[0]
Tercepat/pilihan paling mudah saya telah menemukan berikut. 501 merupakan indeks baris.
Tidak yakin jika ini adalah praktik yang baik, tapi aku menyadari bahwa aku juga bisa mendapatkan nilai dengan casting serial seperti
mengambang
.misalnya
Untuk panda 0.10, di mana
iloc
adalah unavalable, filterDF
dan mendapatkan baris pertama data untuk kolomNILAI
:jika ada lebih dari 1 baris disaring, mendapatkan baris pertama nilai. Akan ada pengecualian jika filter mengakibatkan kosong data frame.