嘿我看了一些帖子,但我找不到直接的答案。我正在研究一個有兩列ZipCode和ZipCodePlusFour的pandas DataFrame。一些ZipCodePlusFour單元被填充。所有ZipCode單元格都被填充。問題是ZipCode有9位數字。所以我試圖擺脫9位ZipCodes的最後4位數字並將它們放入ZipCodePLusFour中。lambda if語句或什麼也不做熊貓
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
我的問題是在第二行。 if語句做它應該做的事情,但其他事情不應該做任何事情。我嘗試過放入None,但它用None填充單元格,而不是保留單元格中已有的值。
'別人x'保持原樣 –
我覺得解決這個問題,你應該刪除'else'部分? –
邏輯是*,如果字符串有6個或更多字符,則將其修剪到最後4個字符,如果它有5個字符,則將其保留爲5 * ...?只是爲了避免這種情況可能會導致錯誤,因爲如果規則只是「修剪爲最多4個字符」,那麼根本就不需要「if..else」。 – deceze