python - 数据框:条件替换

标签 python pandas dataframe

我有一个包含恶意 URL 的数据框,其中 url_type 列具有静态值 2

    url_type    url_type_txt
    2           phishing/fraud
    2           trojan
    2           trojan
    2           phishing

我需要将 url_type 列中的 2 替换为 1,其中 url_type_txt 包含单词 %phish%(可能是“网络钓鱼”) 、“网络钓鱼网址”等)。 我尝试在 for 循环中使用 loc 进行操作,例如:

df3.loc[df3.url_type_txt=="phish", "url_type"] = 1

但这不是合适的解决方案。

有人可以帮助我吗? 谢谢!

最佳答案

使用str.lower (以确保您捕获网络钓鱼以及网络钓鱼)和str.contains() :

df.loc[df.url_type_txt.str.lower().str.contains('phish'), 'url_type'] = 1

>>> df3
   url_type    url_type_txt
0         1  phishing/fraud
1         2          trojan
2         2          trojan
3         1        phishing

关于python - 数据框:条件替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50805426/

相关文章:

python - 计算每个数据框行中的表情符号数量

python - 使用 len()、max() 和 min() 等静态函数相对于继承方法调用的优势

python - 根据可能重复的管道分隔列制作新的 Pandas 列

python - 如何使用 pip 在 Windows 上安装 Pillow?

python:如何根据另一列分别对数据框列的唯一元素求和

Python Pandas : Select columns where a specific row satisfies a condition

python - 如何使用列名作为 Pandas 数据框中的值?

python - 无法用所有列的列值填充缺失值

python - 返回列表中给定数字之前的数字

python - SQLAutoCode - 尝试生成架构时出错