Pandalar: birden fazla sütundaki değerlerin bir sütunda nasıl birleştirileceği


Bir pandas DataFrame’in birden çok sütunundaki değerleri tek bir sütunda gruplamak için aşağıdaki yöntemleri kullanabilirsiniz:

Yöntem 1: Değerleri varsayılan sütun sırasına göre birleştirme

 df[' coalesce '] = df. bfill (axis= 1 ). iloc [:, 0]

Yöntem 2: Belirli Bir Sütun Sırasını Kullanarak Değerleri Birleştirme

 df[' coalesce '] = df[[' col3 ', ' col1 ', ' col2 ']]. bfill (axis= 1 ). iloc [:, 0]

Aşağıdaki örnekler, her yöntemin pratikte aşağıdaki pandalar DataFrame ile nasıl kullanılacağını gösterir:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' points ': [np.nan, np.nan, 19, np.nan, 14],
                   ' assists ': [np.nan, 7, 7, 9, np.nan],
                   ' rebounds ': [3, 4, np.nan, np.nan, 6]})

#view DataFrame
print (df)

   points assists rebounds
0 NaN NaN 3.0
1 NaN 7.0 4.0
2 19.0 7.0 NaN
3 NaN 9.0 NaN
4 14.0 NaN 6.0

Yöntem 1: Değerleri varsayılan sütun sırasına göre birleştirme

Aşağıdaki kod, birleştirilmiş değer olarak üç sütundaki sıfır olmayan ilk değeri kullanarak sayı, asist ve ribaund sütunlarındaki değerlerin tek bir sütunda nasıl birleştirileceğini gösterir:

 #create new column that contains first non-null value from three existing columns 
df[' coalesce '] = df. bfill (axis= 1 ). iloc [:, 0]

#view updated DataFrame
print (df)

   points assists rebounds coalesce
0 NaN NaN 3.0 3.0
1 NaN 7.0 4.0 7.0
2 19.0 7.0 NaN 19.0
3 NaN 9.0 NaN 9.0
4 14.0 NaN 6.0 14.0

Birleştirme sütunundaki değer şu şekilde seçilmiştir:

  • İlk satır: Sıfır olmayan ilk değer 3,0’dı .
  • İkinci satır: Sıfır olmayan ilk değer 7,0’dı .
  • Üçüncü satır: Sıfır olmayan ilk değer 19,0’dı .
  • Dördüncü satır: Sıfır olmayan ilk değer 9,0’dı .
  • Beşinci satır: Sıfır olmayan ilk değer 14,0’dı .

Yöntem 2: Belirli Bir Sütun Sırasını Kullanarak Değerleri Birleştirme

Aşağıdaki kod, sütunları şu sırayla analiz ederek üç sütundaki değerlerin nasıl birleştirileceğini gösterir: asistler, ribaundlar, sayılar.

 #coalesce values in specific column order
df[' coalesce '] = df[[' assists ', ' rebounds ', ' points ']]. bfill (axis= 1 ). iloc [:, 0]

#view updated DataFrame
print (df)

   points assists rebounds coalesce
0 NaN NaN 3.0 3.0
1 NaN 7.0 4.0 7.0
2 19.0 7.0 NaN 7.0
3 NaN 9.0 NaN 9.0
4 14.0 NaN 6.0 6.0

Birleştirme sütununa hangi değerin yerleştirileceğine karar vermek için kullanılan mantık şöyledir:

  • Yardımcı sütundaki değer sıfır değilse bu değeri kullanın.
  • Aksi takdirde, hemen çıkma sütunundaki değer sıfır değilse bu değeri kullanın.
  • Aksi takdirde puan sütunundaki değer sıfır değilse bu değeri kullanın.

Not : bfill() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde pandalarda diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

Pandalar’da iki sütun nasıl birleştirilir
Pandalarda belirli sütunlar nasıl toplanır?
Pandalar’da birden çok sütuna göre sıralama nasıl yapılır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir