Data Wrangling

Pandas’ta Ustalaşma: Metin Sütunlarını Birleştirmenin Beş Etkin Yolu

Spread the love

Metin sütunlarını verimli bir şekilde birleştirmek, veri manipülasyonunda çok önemli bir görevdir. Bu makale, bir DataFrame içindeki dize sütunlarını birleştirmek için beş etkili Pandas yöntemini sunmakta, güçlü ve zayıf yönlerini vurgulayarak belirli ihtiyaçlarınız için en uygun yaklaşımı seçmenizde size rehberlik etmektedir.

İçindekiler Tablosu:

+ Operatörü Yöntemi

Bu basit yaklaşım, dize birleştirme için Python’ın yerleşik + operatörünü kullanır. Genellikle basit senaryolar için en hızlı yöntemdir ancak TypeError istisnalarından kaçınmak için eksik değerlerin (NaN) dikkatlice ele alınmasını gerektirir.


import pandas as pd
import numpy as np

data = {'col1': ['A', 'B', 'C', np.nan], 'col2': ['D', 'E', 'F', 'G']}
df = pd.DataFrame(data)

df['combined'] = df['col1'].fillna('') + df['col2'].fillna('')
print(df)

Çıktı:


  col1 col2 combined
0    A    D      AD
1    B    E      BE
2    C    F      CF
3  NaN    G       G

Series.str.cat() Yöntemi

Series.str.cat() özellikle dize birleştirme için tasarlanmıştır ve eksik verileri verimli bir şekilde işler. Ayırıcılar ve NaN gösterimi ile özelleştirmeye olanak tanır.


import pandas as pd
import numpy as np

data = {'col1': ['A', 'B', 'C', np.nan], 'col2': ['D', 'E', 'F', 'G']}
df = pd.DataFrame(data)

df['combined'] = df['col1'].str.cat(df['col2'], sep='-', na_rep='')
print(df)

Çıktı:


  col1 col2 combined
0    A    D      A-D
1    B    E      B-E
2    C    F      C-F
3  NaN    G      -G

df.apply() Yöntemi

df.apply(), satır bazlı (axis=1) veya sütun bazlı (axis=0) işlemler için esneklik sunar ve karmaşık birleştirme mantığına olanak tanır. Bununla birlikte, büyük DataFrame’ler için + operatöründen daha az verimli olabilir.


import pandas as pd
import numpy as np

data = {'col1': ['A', 'B', 'C', np.nan], 'col2': ['D', 'E', 'F', 'G']}
df = pd.DataFrame(data)

df['combined'] = df.apply(lambda row: str(row['col1']) + ' ' + str(row['col2']), axis=1)
print(df)

Çıktı:


  col1 col2 combined
0    A    D      A D
1    B    E      B E
2    C    F      C F
3  NaN    G    nan G

Series.map() Yöntemi

Series.map(), koşullu mantık veya belirli ayırıcılar gibi çeşitli senaryoları ele alan birleştirme için özel işlevler uygulamanın esnek bir yolunu sağlar. Daha karmaşık birleştirme kuralları için özellikle kullanışlıdır.


import pandas as pd
import numpy as np

data = {'col1': ['A', 'B', 'C', np.nan], 'col2': ['D', 'E', 'F', 'G']}
df = pd.DataFrame(data)

def combine_strings(x):
  return str(x[0]) + '_' + str(x[1])

df['combined'] = df[['col1', 'col2']].apply(combine_strings, axis=1)
print(df)

Çıktı:


  col1 col2 combined
0    A    D      A_D
1    B    E      B_E
2    C    F      C_F
3  NaN    G    nan_G

df.agg() Yöntemi

Öncelikle toplamalar için olsa da, df.agg() dize birleştirme için uyarlanabilir. Bununla birlikte, bu özel amaç için diğer yöntemlerden genellikle daha az verimlidir.


import pandas as pd
import numpy as np

data = {'col1': ['A', 'B', 'C', np.nan], 'col2': ['D', 'E', 'F', 'G']}
df = pd.DataFrame(data)

df['combined'] = df.agg(lambda x: str(x['col1']) + ' ' + str(x['col2']), axis=1)
print(df)

Çıktı (df.apply() ile benzer):


  col1 col2 combined
0    A    D      A D
1    B    E      B E
2    C    F      C F
3  NaN    G    nan G

Sonuç: En uygun yöntem, belirli ihtiyaçlarınıza ve veri kümesi boyutunuza bağlıdır. Temel birleştirme için + operatörü hız sunar. Series.str.cat() eksik değerleri verimli bir şekilde işlemekte mükemmeldir. Series.map() ve df.apply() karmaşık senaryolar için daha fazla esneklik sağlar, df.agg() ise bu görev için daha az verimlidir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir