【问题标题】:Check if there is a condition in each row in python and assing to a new variable检查python中每一行是否有条件并分配给一个新变量
【发布时间】:2018-10-04 14:34:09
【问题描述】:

我在 Python 中有一个数据框 unir,我想检查 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"] = ""

但它只返回空白。

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

提前致谢,

【问题讨论】:

    标签: python python-3.x pandas for-loop variables


    【解决方案1】:

    在 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/            
    

    【讨论】:

    • 谢谢!我只想补充一点,我需要在运行脚本之前加载 numpy 库:
    • 使用import numpy as np ;)
    • 如果安装pandas,需要numpy的包,所以也要安装pandas
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 2021-04-07
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    相关资源
    最近更新 更多