我有一個包含以下列的資料框:
d = {'find_no': [1, 2, 3], 'zip_code': [32351, 19207, 8723]}
df = pd.DataFrame(data=d)
當 zip_code 列中有 5 位數字時,我想回傳 True。當沒有 5 位數字時,我想回傳“find_no”。示例輸出會將結果添加到資料框的添加列中,對應于它所參考的行。
uj5u.com熱心網友回復:
你可以試試 np.where:
import numpy as np
df['result'] = np.where(df['zip_code'].astype(str).str.len() == 5, True, df['find_no'])
這種方法的唯一缺點是 NumPy 會將您的 True 值轉換為 1,這可能會造成混淆。保持你想要的價值觀的一種方法是
import numpy as np
df['result'] = np.where(df['zip_code'].astype(str).str.len() == 5, 'True', df['find_no'].astype(str))
這里的缺點是您通過將它們轉換為字串而失去了這些值的含義。我想這一切都取決于你希望完成什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/478502.html
