df 看起來像這樣:
| 描述和主要優點 (14) | 品牌_cooltouch (1711) | 品牌_easylogic (1712) |
|---|---|---|
| Lorem Ipsum cooltouch Lorem Ipsum | ||
| Lorem Ipsum easylogic Lorem Ipsum | ||
| Lorem Ipsum Lorem Ipsum |
我想要什么:當列描述和 keybenefits (14) 包含值“cooltouch”時,列brand_cooltouch (1711) 需要設定為值1 (int)。當列描述和 keybenefits (14) 包含值“easylogic”時,列brand_easylogic (1712) 需要設定為值 1 (int)。
我想要的輸出:
| 描述和主要優點 (14) | 品牌_cooltouch (1711) | 品牌_easylogic (1712) |
|---|---|---|
| Lorem Ipsum cooltouch Lorem Ipsum | 1 | |
| Lorem Ipsum Lorem Ipsum easylogic | 1 | |
| Lorem Ipsum Lorem Ipsum |
很感謝任何形式的幫助。
uj5u.com熱心網友回復:
一個可以使用pandas.Series.str.contains。
對于字串cooltouch,請執行以下操作
df['brand_cooltouch (1711)'] = df['description and keybenefits (14)'].str.contains('cooltouch', case=False).astype(int)
[Out]:
description and keybenefits (14) brand_cooltouch (1711) brand_easylogic (1712)
0 Lorem Ipsum cooltouch Lorem Ipsum 1 None
1 Lorem Ipsum easylogic Lorem Ipsum 0 None
2 Lorem Ipsum Lorem Ipsum 0 None
對于字串easylogic,請執行以下操作
df['brand_easylogic (1712)'] = df['description and keybenefits (14)'].str.contains('easylogic', case=False).astype(int)
[Out]:
description and keybenefits (14) brand_cooltouch (1711) brand_easylogic (1712)
0 Lorem Ipsum cooltouch Lorem Ipsum 1 0
1 Lorem Ipsum easylogic Lorem Ipsum 0 1
2 Lorem Ipsum Lorem Ipsum 0 0
筆記:
case=False是使它不區分大小寫。
uj5u.com熱心網友回復:
你可以使用 np.where。我建議用 NaN 或 0 填充條件不滿足的所有單元格。這是使用的解決方案np.nan
df["brand_cooltouch (1711)“] = np.where(df["description and keybenefits (14)“].str.contains("cooltouch"), 1, np.nan)
df["brand_easylogic (1712)“] = np.where(df["description and keybenefits (14)“].str.contains("easylogic"), 1, np.nan)
uj5u.com熱心網友回復:
使用Series.str.contains-
df['brand_cooltouch (1711)'] = df['description and keybenefits (14)'].str.contains("cooltouch").astype(int)
輸出
description and keybenefits (14) brand_cooltouch (1711) brand_easylogic (1712)
0 Lorem Ipsum cooltouch Lorem Ipsum 1 NaN
1 Lorem Ipsum easylogic Lorem Ipsum 0 NaN
2 Lorem Ipsum Lorem Ipsum 0 NaN
如果您不希望結果列是 1 和 0 - 您也可以執行以下操作 -
df.loc[df['description and keybenefits (14)'].str.contains("cooltouch"), ['brand_cooltouch (1711)']] = '1'
df.loc[~df['description and keybenefits (14)'].str.contains("cooltouch"), ['brand_cooltouch (1711)']] = ''
輸出
description and keybenefits (14) brand_cooltouch (1711) brand_easylogic (1712)
0 Lorem Ipsum cooltouch Lorem Ipsum 1 NaN
1 Lorem Ipsum easylogic Lorem Ipsum NaN
2 Lorem Ipsum Lorem Ipsum NaN
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/518014.html
標籤:Python熊猫代替包含
下一篇:從從后面開始的術語過濾列串列
