2017-07-13 8 views
-2

ich unter zwei Funktionen:Argument vom Typ 'NoneType' ist nicht iterable Pandas

#To update the label1 if word is present with is_name 
def update(data,word_lists, is_name): 
for wlist in word_lists: 
    if check_keywords(data, wlist): 
     return is_name 
return '' 

#To check if Words are present in my Short_description field. 
def check_keywords(data, words): 
cnt=0 
for word in words: 
    if word in data: 
     cnt+=1 
return cnt==len(words) 

unter meinem Datenformat ist:

short_description, label1

Dies sind die Spalten, die ich in meinen Daten ACE_2017 habe. ich brauche für Keywords in short_description und Aktualisierung zu überprüfen label1

unter meinem Update-Befehl ist:

#To check if "access request" or "request Access" is present in Short_description then it should update label1 with 'Access request' 

ACE_2017.ix[ACE_2017['label1']=='','label1'] = ACE_2017[ACE_2017['label1']==''].Short_description.map(lambda x: update(x,[['access request','request Access']],'Access request')) 

, aber wenn ich den obigen Befehl ausführen sagt es

Argument vom Typ 'NoneType' ist nicht iterierbar

Was fehlt mir hier, wie kann ich das beheben.

+0

Ich schrieb eine Antwort, aber es würde auch helfen zu wissen, was Sie versuchen zu tun – snapcrack

+0

aktualisiert meine Frage mit Daten und ihren Zweck – toofrellik

Antwort

1

diese Ausgabe ist Ihnen klar. "Argument vom Typ 'NoneType' ist nicht iterierbar". Wenn Sie in Python versuchen, über ein Objekt vom Typ None zu iterieren, kommt das Problem.

in Ihrem Fall alle anderen Parameter zu festen behoben, außer "kurze Beschreibung" Spaltenwert. Das ändert sich mit jeder Iteration. Überprüfen Sie, ob die Spalte "Kurzbeschreibung" einen "NaN" -Wert enthält. !!

Verwandte Themen