我正在嘗試在 Pandas DataFrame 中添加一個新列。我希望它基于我的“SKU”列,基本上說“如果 SKU 以 -RF 結尾,則將“USED”寫入新列,elif SKU 以 -NEW 結尾,將“NEW”寫入新列,否則不要做任何事情。
我知道在我的 SQL 中你可以這樣寫“...WHERE LIKE”%-RF”,我正在尋找與此功能相同的東西。
這是我試圖實作的(未完成的)功能。我試圖找出代替“something_to_do_with”占位符的內容。
if sku_column == something_to_do_with_-RF:
val = "USED"
elif sku_column == something_to_do_with_-NEW:
val = "NEW"
else:
continue
uj5u.com熱心網友回復:
不需要回圈。
df.loc[df['sku'].str.endswith("-RF"),'column'] = 'USED'
df.loc[df['sku'].str.endswith("-NEW"),'column'] = 'NEW'
uj5u.com熱心網友回復:
Pandas中 SQL 的小丑等價物%a_text是pandas.Series.str.endswith(a_text)。
在您的情況下,最好使用pandas.Series.str.extract正則運算式來捕獲所需的文本并將其映射到預定義的字典。
嘗試這個 :
dico = {'RF': 'USED', 'NEW': 'NEW'}
df['new_col'] = df['SKU'].str.extract('.-(RF|NEW)$', expand=False).map(dico)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/512683.html
標籤:Python熊猫数据框if 语句
