在jupyter notebook 环境里 用正则提取一次年龄不要重复
时间: 2024-09-18 20:05:49 浏览: 37
在Jupyter Notebook环境中,你可以使用Python的`re`模块(正则表达式库)来进行字符串匹配并提取年龄。首先,你需要确保已经导入了`re`模块。以下是一个基本的例子,假设你有一列文本数据,包含类似“age: 25”的格式,并且每个实例之间没有明确的分隔符:
```python
import re
# 假设你的数据在一个名为"data"的列表中,每一项是一个字符串
data = ["信息1: age: 30", "信息2: age: 28", "信息3: age: 25", "已知年龄"]
# 定义正则表达式模式,只提取"age: "后面的数字
pattern = r"age:\s*(\d+)"
ages = [] # 存储提取到的年龄
for line in data:
match = re.search(pattern, line) # 查找匹配项
if match: # 如果找到匹配
age = int(match.group(1)) # 提取数字部分并转换为整数
if age not in ages: # 验证是否重复
ages.append(age)
# 打印不重复的年龄
print("不重复的年龄:", ages)
```
相关问题
基于jupyter运用resquests库和正则表达式爬取网页信息
当然可以,以下是基于 Jupyter Notebook 运用 requests 库和正则表达式爬取网页信息的示例代码:
```python
import requests
import re
# 发送 HTTP GET 请求
url = 'https://www.example.com'
response = requests.get(url)
# 获取网页内容
content = response.content.decode('utf-8')
# 使用正则表达式提取信息
pattern = re.compile('<title>(.*?)</title>')
title = re.findall(pattern, content)
# 输出结果
print(title)
```
以上代码可以实现以下功能:
1. 发送 HTTP GET 请求获取网页内容。
2. 使用 `decode('utf-8')` 将网页内容转换为 Unicode 编码。
3. 使用正则表达式从网页内容中提取信息。
4. 输出提取的信息。
需要注意的是,以上代码仅供参考,具体的爬虫实现需要根据目标网站的实际情况进行调整。另外,在爬取网页时需要遵守法律法规和网站规定,不得进行恶意爬取和侵犯他人隐私等行为。
csv文件中authorships.raw_author_name列中有多个author名,名之间用|隔开,jupyter notebook提取每行中每个author名并计算出现次数
在Jupyter Notebook中,你可以使用Pandas库来读取csv文件,并通过字符串操作来提取每个作者名。首先,我们需要加载CSV文件并查看数据结构。然后,我们将使用正则表达式(regex)分割`authorships.raw_author_name`列中的值,提取出每个作者名,并计算每个作者名出现的次数。
以下是步骤:
1. 导入所需库:
```python
import pandas as pd
import re
```
2. 读取csv文件:
```python
df = pd.read_csv("your_file.csv") # 替换"your_file.csv"为你实际的文件路径
```
3. 定义函数来提取作者名:
```python
def extract_authors(author_string):
authors = re.split(r'\|', author_string) # 使用正则表达式拆分由'|'分隔的作者名
return [author.strip() for author in authors] # 去除每个作者名两侧的空格
# 应用这个函数到每一行的authorship列
df['authors_list'] = df['authorships.raw_author_name'].apply(extract_authors)
```
4. 计算每个作者的出现次数:
```python
author_counts = df['authors_list'].explode().value_counts() # 使用explode展开嵌套列表,再计数
```
5. 结果展示:
```python
print(author_counts)
```
这样,你就得到了每个作者名字及其在所有行中出现的次数。如果有特定的需求,比如只统计最常见的几个作者,可以进一步对结果进行排序:
```python
top_authors = author_counts.head(10) # 取出现次数最多的前10个作者
print(top_authors)
```
别忘了替换`"your_file.csv"`为你的实际文件路径。如果你有其他问题或需要帮助,请告诉我。
阅读全文