Pandas DataFrame’lerine yeni sütun eklemek temel bir veri manipülasyon görevidir. Sıklıkla, bu yeni sütunları bir varsayılan değerle başlatmanız gerekir. Bu makale, Pandas’ta bunu gerçekleştirmek için iki verimli yöntemi ele almaktadır: pandas.DataFrame.assign()
ve pandas.DataFrame.insert()
, farklılıklarını ve en iyi kullanım durumlarını vurgulamaktadır.
İçindekiler
- Sütun Eklemek için
pandas.DataFrame.assign()
Kullanımı - Koşullu Varsayılan Değerlerle Sütun Ekleme
- Sütun Eklemek için
pandas.DataFrame.insert()
Kullanımı - Doğru Yöntemi Seçme
Sütun Eklemek için pandas.DataFrame.assign()
Kullanımı
assign()
yöntemi, yeni sütun eklemek için temiz ve öz bir yol sunar. Önemli olarak, orijinal DataFrame’i değiştirmeden yeni bir DataFrame döndürür. Bu fonksiyonel yaklaşım, değişmezliği teşvik eder ve beklenmedik değişiklikleri önlemeye yardımcı olur.
import pandas as pd
# Örnek DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
print("Orijinal DataFrame:n", df)
# Varsayılan değeri 0 olan yeni bir 'C' sütunu ekleyin
df_new = df.assign(C=0)
print("n'C' sütunu eklendikten sonra DataFrame:n", df_new)
print("nOrijinal DataFrame değişmeden kalır:n", df)
# Birden fazla sütun ekleme
df_new = df.assign(C=0, D='varsayılan')
print("nBirden fazla sütun eklendikten sonra DataFrame:n", df_new)
Koşullu Varsayılan Değerlerle Sütun Ekleme
Mevcut verilere bağlı koşullu varsayılan değerler gerektiren daha karmaşık senaryolar için assign()
, diğer Pandas özellikleriyle birleştirilebilir. Bu, daha fazla kontrol ve esneklik sağlar.
import pandas as pd
import numpy as np
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# Yer tutucu olarak NaN ile yeni bir 'C' sütunu ekleyin ve ardından değerleri koşullu olarak atayın
df['C'] = np.nan
df.loc[df['A'] > 1, 'C'] = 10
df.loc[df['A'] <= 1, 'C'] = 20
print("n'C' sütunu eklenip koşullu olarak ayarlandıktan sonra DataFrame:n", df)
Sütun Eklemek için pandas.DataFrame.insert()
Kullanımı
insert()
yöntemi, sütun yerleşimi üzerinde hassas kontrol sağlar. assign()
‘dan farklı olarak, DataFrame’i yerinde değiştirir. Bu, orijinal DataFrame’in doğrudan değiştirildiği anlamına gelir.
import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# Varsayılan değeri 0 olan yeni bir 'C' sütununu 1. konuma (1. indeks) ekleyin
df.insert(1, 'C', 0)
print("n'C' sütunu eklendikten sonra DataFrame:n", df)
insert()
DataFrame’i yerinde değiştirdiğinden, orijinal DataFrame’i korumak istiyorsanız .copy()
kullanarak bir kopya oluşturmanız çok önemlidir.
Doğru Yöntemi Seçme
assign()
ve insert()
arasında seçim, ihtiyaçlarınıza bağlıdır. Özellikle karmaşık mantıkla uğraşırken veya birden fazla sütun eklerken, assign()
genellikle fonksiyonel, değişmez doğası nedeniyle tercih edilir. insert()
, hassas sütun konumu kritik olduğunda ve yerinde değiştirme kabul edilebilir olduğunda kullanışlıdır. İstenmeyen sonuçlardan kaçınmak için yerinde değiştirmenin sonuçlarını her zaman göz önünde bulundurun.