Saya agak terjebak dalam mengekstraksi nilai dari satu pengkondisian variabel pada variabel lain. Misalnya, dataframe berikut:
A B
p1 1
p1 2
p3 3
p2 4
Bagaimana saya bisa mendapatkan nilai A
kapan B=3
? Setiap kali saya mengekstrak nilai A
, saya mendapat objek, bukan string.
item()
di akhir.df.query
danpd.eval
sepertinya cocok untuk kasus penggunaan ini. Untuk informasi tentangpd.eval()
keluarga fungsi, fitur, dan kasus penggunaannya, kunjungi Evaluasi Ekspresi Dinamis di panda menggunakan pd.eval () .Jawaban:
Anda bisa menggunakan
loc
untuk mendapatkan rangkaian yang memenuhi kondisi Anda dan kemudianiloc
untuk mendapatkan elemen pertama:sumber
df.loc[df['B'] == 3, 'A'].item()
bekerja untuk saya juga.Anda bisa mencoba
query
, yang lebih sedikit mengetik:sumber
df[df['B']==3]['A']
, dengan asumsi df adalah pandas.DataFrame Anda.sumber
][
bagian.Gunakan
df[df['B']==3]['A'].values
jika Anda hanya ingin item itu sendiri tanpa tanda kurungsumber
][
bagian.[0]
di bagian akhir untuk mengakses nilainya.Saya juga telah mengerjakan operasi klausa dan ekstraksi ini untuk tugas saya.
sumber