python - python dataframe'de aşağıdaki işlemi nasıl gerçekleştiririm
Nov 08 2020
aşağıda benim df
df = pd.DataFrame({
'Sr. No': [1, 2, 3, 4, 5, 6],
'val1' : [2,3,2,4,1,2],
})
Aşağıdaki şekillerde gösterildiği gibi çıktı val2 istiyorum. satır1, val1 satır1 ile aynıdır, ancak satır2 ve aşağısı, gösterildiği gibi bir formül kullanılarak hesaplanır
Yanıtlar
1 mlang Nov 08 2020 at 12:34
Dolayısıyla, örneğin C4, C3'ün hesaplanmasına bağlı olduğundan, tüm satırlar öncekine bağlıdır. Yani yapabileceğimiz şey, doğrudan uyuşuk diziler üzerinde çalışmaktır.
sr_no_vals = df['Sr. No'].values
val1_vals = df['val1'].values
val2_vals = [val1_vals[0]]
for i in range(1, len(sr_no_vals)):
calculated_value = (((1 + val2_vals[i - 1]) ** sr_no_vals[i - 1]) * (1 + val1_vals[i])) ** (1 / sr_no_vals[i])
val2_vals.append(calculated_value)
df['val2'] = val2_vals
Numpy dizilerle çalışırken, işlemi büyük veriler için çok büyük bir faktörle hızlandırmak için numba gibi tam zamanında bir derleyici de kullanabiliriz.
@numba.jit(nopython=True)
def calc_val2(val1_vals, sr_no_vals):
val2_vals = [val1_vals[0]]
for i in range(1, len(sr_no_vals)):
calculated_value = (((1 + val2_vals[i - 1]) ** sr_no_vals[i - 1]) * (1 + val1_vals[i])) ** (1 / sr_no_vals[i])
val2_vals.append(calculated_value)
return val2_vals
df['val2'] = calc_val2(val1_vals, sr_no_vals)
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı