【问题标题】:How can I extract links and users from one column and place them in another column?如何从一列中提取链接和用户并将它们放在另一列中?
【发布时间】:2021-01-04 17:59:54
【问题描述】:

我有一列包含这样的用户信息和链接:

tweet
1   "¿Tienes dudas sobre #ciberseguridad y no sabes a quién acudir? Desde @INCIBE queremos recordarte que estamos a tu disposición en nuestro teléfono gratuito ☎017. ¡Te ayudaremos!
????  https://www.osi.es/es/contacto  pic.twitter.com/uJ3zNQxfda"
2   Hola @ProtoMot, te recomendamos que leas el siguiente artículo de nuestra web y si sigues teniendo dudas puedes llamarnos gratuitamente al 017 la Línea de Ayuda en Ciberseguridad. https://www.osi.es/es/actualidad/blog/2019/04/04/microsoft-te-ha-llamado-sin-haberlo-solicitado …
3   "Hola @Lotharmatao2020, para atender tu consulta de forma personalizada puedes ponerte en contacto con nosotros llamando gratuitamente al 017, la Línea de Ayuda en Ciberseguridad.
 https://www.incibe.es/linea-de-ayuda-en-ciberseguridad …"

我想创建一些可以识别用户和行的链接的东西。这样我在数据框中就有了一个新列,结果如下:

 tweet_mentions
    1    @INCIBE
     https://www.osi.es/es/contacto  pic.twitter.com/uJ3zNQxfda"
    2 @ProtoMot
https://www.osi.es/es/actualidad/blog/2019/04/04/microsoft-te-ha-llamado-sin-haberlo-solicitado …
    3    @Lotharmatao2020
     https://www.incibe.es/linea-de-ayuda-en-ciberseguridad …"

我正在考虑创建一个识别 @ 和 https 的函数,但我不知道做这件事的最佳方法是什么。

【问题讨论】:

    标签: python dataframe filter hyperlink tweets


    【解决方案1】:

    这是一种方法:

    import re
    
    a = [
       '¿Tienes dudas sobre #ciberseguridad y no sabes a quién acudir? Desde @INCIBE queremos recordarte que estamos a tu disposición en nuestro teléfono gratuito ☎017. ¡Te ayudaremos! ?  https://www.osi.es/es/contacto  pic.twitter.com/uJ3zNQxfda',
       'Hola @ProtoMot, te recomendamos que leas el siguiente artículo de nuestra web y si sigues teniendo dudas puedes llamarnos gratuitamente al 017 la Línea de Ayuda en Ciberseguridad. https://www.osi.es/es/actualidad/blog/2019/04/04/microsoft-te-ha-llamado-sin-haberlo-solicitado',
       'Hola @Lotharmatao2020, para atender tu consulta de forma personalizada puedes ponerte en contacto con nosotros llamando gratuitamente al 017, la Línea de Ayuda en Ciberseguridad. https://www.incibe.es/linea-de-ayuda-en-ciberseguridad'
    ]
    
    for n, s in enumerate(a):
       a_at = re.findall('@[^ ,]+', s)
       a_url = re.findall('https://[^ ,]+', s)
       print(n, a_at)
       print(a_url)
    

    请注意,这会遗漏pic.twitter.com/uJ3zNQxfda 之类的内容,但是您 可以说这不是一个有效的 URL,因为它缺少协议。如果你需要 将 URL 与可选协议匹配,这将是一个更加困难的常规 表达。

    【讨论】:

    • 谢谢史蒂文。但我想将用户和超链接的提及放入一个新列中,如示例。你知道我该怎么做吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 2019-06-03
    • 2018-06-27
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多