问题描述
我有一个包含以下列的数据框:Date、Time、Tweet、Client、Client Simplified Tweet 列有时包含网站链接。 我正在尝试定义一个函数,该函数提取此链接在推文中显示的次数以及它是哪个链接。
我不想要整个函数的答案。在我将所有这些编程为一个函数之前,我现在正在努力使用 findall 函数:
managed = True
我得到的错误是:
import pandas as pd
import re
csv_doc = pd.read_csv("/home/datasci/prog_datasci_2/activities/activity_2/data/TrumpTweets.csv")
URL = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+',csv_doc)
你能告诉我有什么问题吗? 谢谢。
解决方法
-
尝试在字符串前添加 r。它会告诉 Python 这是一个正则表达式模式
-
也重新打包主要处理单个字符串,而不是列表或字符串系列。您可以尝试使用这样的简单列表推导式:
[re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+',x) for x in csv_doc.Tweet]