Misalkan saya memiliki bingkai data 5 * 3 di mana kolom ketiga berisi nilai yang hilang
1 2 3
4 5 NaN
7 8 9
3 2 NaN
5 6 NaN
Saya berharap untuk menghasilkan nilai untuk aturan berbasis nilai yang hilang itu kolom kedua produk pertama
1 2 3
4 5 20 <--4*5
7 8 9
3 2 6 <-- 3*2
5 6 30 <-- 5*6
Bagaimana saya bisa menggunakan bingkai data? Terima kasih.
Bagaimana cara menambahkan kondisi untuk menghitung nilai yang hilang seperti ini?
if 1st % 2 == 0 then 3rd = 1st * 2nd
else 3rd = 1st + 2nd
1 2 3
4 5 20 <-- 4*5 because 4%2==0
7 8 9
3 2 5 <-- 3+2 because 3%2==1
5 6 11 <-- 5+6 because 5%2==1
Jawaban:
Dengan asumsi tiga kolom kerangka data Anda adalah
a
,b
danc
. Ini yang Anda inginkan:Kode lengkap:
sumber
np.isnan
tidak mendukung data non-numerik. Ini bukan masalah di sini karena OP memiliki kolom numerik dan operasi aritmatika tetapi sebaliknyapd.isnull
merupakan alternatif yang lebih baik.Pilihan lain:
df.loc[(pd.isnull(df.C)), 'C'] = df.A * df.B
sumber
Bagaimana dengan menggunakan
fillna()
metode bingkai data?df['C'].fillna(df.A * df.B)
sumber
Dengan asumsi bahwa tiga kolom dalam kerangka data Anda adalah
a
,b
danc
. Maka Anda dapat melakukan operasi yang diperlukan seperti ini:sumber
np.where(pd.isnull(df.c), df.a * df.b, df.c)