首页 > 解决方案 > 检查python中的每一行是否有条件并分配给一个新变量

问题描述

unir在 Python 中有一个数据框,我想检查 URL 中是否有特定的文本模式。如果模式存在,我想为新变量赋值,如果不存在,我想将变量留空。

我的数据样本如下:

sample =[
"https://www.unir.net/revista/especiales/ley-de-factura-electronica.html",
"https://www.unir.net/revista/especiales/autoempleo/",
"https://www.unir.net/revista/",
"https://www.unir.net/revista/especiales/examen-acceso-abogacia.html",
"https://www.unir.net/revista/especiales/informe-pisa/",
"https://www.unir.net/revista/",
"https://www.unir.net/revista/especiales/dificultades-de-aprendizaje.html",
"https://www.unir.net/revista/especiales/informe-pisa/profesores-salarios.html",
"https://www.unir.net/revista/especiales/autoempleo/",
"https://www.unir.net/revista/evento/ii-festival-de-teatro-unir/",
"https://en.unir.net/revista/noticias/page/64/",
"https://www.unir.net/revista/especiales/autoempleo/",
"https://www.unir.net/revista/especiales/informe-pisa/profesores-salarios.html",
"https://www.unir.net/revista/"]

unir = pd.DataFrame(sample, columns=["url"])

我正在搜索模式“ https://www.unir.net/revista/especiales ”,执行以下操作:

for x in unir["url"]:
    if (unir["url"].str.contains("https://www.unir.net/revista/especiales")) is True:
        unir["arees"] = "Especiales"
    else:
        unir["arees"] = ""

但它只返回空白。

我不知道似乎是什么问题......

提前致谢,

标签: pythonpython-3.xpandasfor-loopvariables

解决方案


在 pandas 中最好避免循环,因为速度慢,最好使用矢量化解决方案numpy.where

mask = unir["url"].str.contains("https://www.unir.net/revista/especiales")
unir["arees"] = np.where(mask, "Especiales", '')
print (unir)
                                                  url       arees
0   https://www.unir.net/revista/especiales/ley-de...  Especiales
1   https://www.unir.net/revista/especiales/autoem...  Especiales
2                       https://www.unir.net/revista/            
3   https://www.unir.net/revista/especiales/examen...  Especiales
4   https://www.unir.net/revista/especiales/inform...  Especiales
5                       https://www.unir.net/revista/            
6   https://www.unir.net/revista/especiales/dificu...  Especiales
7   https://www.unir.net/revista/especiales/inform...  Especiales
8   https://www.unir.net/revista/especiales/autoem...  Especiales
9   https://www.unir.net/revista/evento/ii-festiva...            
10      https://en.unir.net/revista/noticias/page/64/            
11  https://www.unir.net/revista/especiales/autoem...  Especiales
12  https://www.unir.net/revista/especiales/inform...  Especiales
13                      https://www.unir.net/revista/            

推荐阅读