Hey Ich schaute durch einige der Post, aber ich konnte keine direkte Antwort finden. Ich arbeite an einem Pandas DataFrame, der zwei Spalten ZipCode und ZipCodePlusFour hat. Einige der ZipCodePlusFour-Zellen sind gefüllt. Alle ZipCode-Zellen sind gefüllt. Das Problem ist, dass der ZipCode 9 Ziffern hat. Also versuche ich, die letzten 4 Ziffern der 9-stelligen Postleitzahlen loszuwerden und sie in ZipCodePLusFour zu speichern.Lambda wenn Aussage oder nichts tun Pandas
df['ZipCode'] = df.ZipCode.astype(str) # just in case
df['ZipCodePlusFour'] = df.ZipCode.apply(lambda x: x[-4:] if len(x) > 5 else None)
df['ZipCode'] = df.ZipCode.apply(lambda x: x[:-4] if len(x) > 5 else
Mein Problem ist in der zweiten Zeile. Die if-Anweisung tut, was sie tun soll, aber die andere sollte nichts tun. Ich habe versucht, None zu setzen, aber es füllt die Zellen mit None, anstatt den Wert zu verlassen, der bereits in der Zelle war.
'sonst x' es zu halten, wie –
ist denke ich löse das, du solltest einfach den 'else' Teil entfernen? –
Die Logik ist * wenn die Zeichenkette 6 oder mehr Zeichen hat, trimme es auf die letzten 4, wenn es 5 Zeichen hat, lasse es bei 5 * ...? Frage nur, ob das vielleicht ein Fehler von eins nach dem anderen ist, denn wenn die Regel einfach "auf maximal 4 Zeichen trimmen" soll, ist keine "if..else" nötig. – deceze