2 argüman alan sayım adı verilen bir yöntem var. Apply() yöntemini kullanarak bu yöntemi çağırmam gerekir. Ancak aşağıdaki hatayı veriyor uygulamak yöntemine iki parametre geçirerek zaman: Aşağıdaki iplik python pandas: apply a function with arguments to a series. Update gördükUygulama işlevine birden çok bağımsız değişken nasıl uygulanır
TypeError: counting() takes exactly 2 arguments (1 given)
ve ben ithal etmek istemiyorum functool.partial kullanmak istemiyoruz parametreleri geçirebilmek için ek sınıflar. Tek bir parametre verirsek
def counting(dic, strWord):
if strWord in dic:
return dic[strWord]
else:
return 0
DF['new_column'] = DF['dic_column'].apply(counting, 'word')
, çalışır: Diğer taraftan
DF['new_column'] = DF['dic_column'].apply(lambda dic: counting(dic, 'word'))
kesinlikle partial
kullanarak yanlış bir şey vardır:
def awesome_count(dic):
if strWord in dic:
return dic[strWord]
else:
return 0
DF['new_column'] = DF['dic_column'].apply(counting)
'dic' nedir ve nereden gelmesini bekliyorsunuz? Ayrıca, 'parsiyel' ile sorun nedir? Standart kütüphanenin bir parçası ... – tzaman
İkinci argümanın nereden gelmesini istediniz? –
Daha fazla açıklık için soruyu değiştirdi. dic, uygulama işleviyle varsayılan olarak gelecek olan sütun değeridir. İkinci argüman, mantık kullanılarak geçirilmekte olan yeni bir argümandır. – Bonson