从数据框架-Python的列中查找所有网站链接、组和计数



我有一个包含以下列的数据帧:日期、时间、推特、客户端、简化客户端推特专栏有时会包含一个网站链接。我试图定义一个函数,提取这个链接在推特中显示的次数以及它是哪个链接。

我不想要整个函数的答案。在我将所有这些编程为一个函数之前,我现在正在与findall函数作斗争:

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)

我得到的错误是:

TypeError                                 Traceback (most recent call last)
<ipython-input-20-0085f7a99b7a> in <module>
7 # csv_doc.head()
8 tweets = csv_doc.Tweet
----> 9 URL= re.split('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+',tweets)
10 
11 # URL = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', csv_doc[Tweets])
/usr/lib/python3.8/re.py in split(pattern, string, maxsplit, flags)
229     and the remainder of the string is returned as the final element
230     of the list."""
--> 231     return _compile(pattern, flags).split(string, maxsplit)
232 
233 def findall(pattern, string, flags=0):
TypeError: expected string or bytes-like object

你能告诉我怎么了吗?谢谢

  1. 尝试在字符串前面添加r。它会告诉Python这是一个正则表达式模式

  2. 另外,重打包大多针对单个字符串,而不是列表或系列字符串。你可以试着使用这样一个简单的列表理解:

[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]

相关内容

  • 没有找到相关文章

最新更新