Python: Nasıl satır ve sonraki satır DataFrame.apply () yöntemini geçmek?

oy
0

Ben binlerce satırlarla DataFrame var. Onun yapısı aşağıda gibidir

     A    B    C     D 
 0   q   20    'f'
 1   q   14    'd'
 2   o   20    'a'

Ben Geçerli satıra ve bir sonraki satırın bir sütun karşılaştırmak istiyorum. Bu değerler ise ben büyük bir değere sahip karşılaştırıldığında satır D kolonuna değeri düşük olan B sütununun değerini eklemek istediğiniz eşittir. Sonra bir takas işleminde gibi b sütununu taşınan kolon değerini kaldırmak istiyorum.

    A    B    C     D 
0   q   20    'f'   14
1   o   20    'a'

yöntemler yavaş çalışması azından ben, binlerce satır ve iLOC, loc var. En azından ben DataFrame yöntemini uygulamak kullanmak istiyorum. Bazı kod örnekleri denedik ama işe yaramadı.

Ben aşağıdaki gibi bir şey yapmak istiyorum: DataFrame.apply (lambda satır: self.compare (satır, bir sonraki (satır)), eksen = 1))

Bir karşılaştırma yöntemi var ama karşılaştırma yönteminin yanındaki satırı geçemedim. Bunu nasıl yönteme geçebilir? Ayrıca daha hızlı panda çözümler duymak açığım.

Oluştur 19/03/2020 saat 21:58
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
0

En birlikte yapmak değil applyyavaş olacak şekilde; Kullandığınız bakabilirsiniz shift, mesela

df['A_shift'] = df['A'].shift(1)
df['Is_Same'] = 0
df.loc[df.A_shift == df.A, 'Is_Same'] = 1

Eğer grupları içinde vardiya yapıyoruz biraz daha karmaşık, ama yine de mümkün alır.

Cevap 19/03/2020 saat 22:03
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more