Aşağıdaki örnekte benzer bir veri kümesini analiz ediyorum.DataFrame kullanarak bir pandada ek sütun oluşturma .map()
abc1 abc2 abc3 xyz1 xyz2 xyz3
0 1 2 2 2 1 2
1 2 1 1 2 1 1
2 2 2 1 2 2 2
3 1 2 1 1 1 1
4 1 1 2 1 2 1
I dataframe içinde bulunan her abc sütun için bir sınıflandırma sütun ekler bir işlev oluşturmak istiyorum: iki farklı veri tipleri (ABC veri ve xyz veri) sahiptir. Sütun isimleri ve kategori eşleme sözlüğü listelerini kullanarak, istediğim sonucu elde edebildim.
abc_columns = ['abc1', 'abc2', 'abc3']
xyz_columns = ['xyz1', 'xyz2', 'xyz3']
abc_category_columns = ['abc1_category', 'abc2_category', 'abc3_category']
categories = {1: 'Good', 2: 'Bad', 3: 'Ugly'}
for i in range(len(abc_category_columns)):
df3[abc_category_columns[i]] = df3[abc_columns[i]].map(categories)
print df3
Sonuç: sonunda for
döngü çalışıyor
abc1 abc2 abc3 xyz1 xyz2 xyz3 abc1_category abc2_category abc3_category
0 1 2 2 2 1 2 Good Bad Bad
1 2 1 1 2 1 1 Bad Good Good
2 2 2 1 2 2 2 Bad Bad Good
3 1 2 1 1 1 1 Good Bad Good
4 1 1 2 1 2 1 Good Good Bad
ederken, ben Python'un lambda
işlevini kullanarak gerektiğini fakat onu anlamaya gibi olamaz gibi hissediyorum.
abc -type sütunları dinamik sayısında eşlemek için daha verimli bir yol var mı?
Andy, çok teşekkürler! –
@AndyHayden, bir dataframe üzerindeki .applymap ve pandas dataframe'deki .map arasındaki fark nedir? – yoshiserry
@yoshiserry applymap, her satır/sütun yerine her bir hücreye yapar. –