看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)电商后台有 10 条商品描述,部分描述中包含品牌信息。现在需要提取每条描述中的品牌信息。如果不存在品牌信息,则返回空列表。源数据如下:
import pandas as pd
df = pd.DataFrame({
"商品描述": ["Nike 红色连衣裙", "Adidas 黑色皮鞋",
"Levi's 蓝色牛仔裤", "Uniqlo 白色T恤",
"Zara 绿色外套", "连衣裙打折",
"Gucci 时尚连衣裙", "Puma 运动连衣裙",
"Chanel 休闲连衣裙", "无袖连衣裙"]
})
df
输出结果:
商品描述
0 Nike 红色连衣裙
1 Adidas 黑色皮鞋
2 Levi's 蓝色牛仔裤
3 Uniqlo 白色T恤
4 Zara 绿色外套
5 连衣裙打折
6 Gucci 时尚连衣裙
7 Puma 运动连衣裙
8 Chanel 休闲连衣裙
9 无袖连衣裙
具体要求: 用 一行链式调用代码 提取每条描述中的 品牌信息,并新增列 品牌信息
,打印结果。
代码如下:
df["品牌信息"] = df["商品描述"].str.findall(r"(Nike|Adidas|Levi's|Uniqlo|Zara|Gucci|Puma|Chanel)")
print(df)
输出结果:
商品描述 品牌信息
0 Nike 红色连衣裙 [Nike]
1 Adidas 黑色皮鞋 [Adidas]
2 Levi's 蓝色牛仔裤 [Levi's]
3 Uniqlo 白色T恤 [Uniqlo]
4 Zara 绿色外套 [Zara]
5 连衣裙打折 []
6 Gucci 时尚连衣裙 [Gucci]
7 Puma 运动连衣裙 [Puma]
8 Chanel 休闲连衣裙 [Chanel]
9 无袖连衣裙 []
str.findall()
是 Pandas 提供的一个字符串操作方法,用于在 Series 的每个字符串中查找所有匹配正则表达式的子字符串。在这个例子中,我们对 df["商品描述"]
列调用 str.findall(r"(Nike|Adidas|Levi's|Uniqlo|Zara|Gucci|Puma|Chanel)")
,它会逐个检查每条描述中是否包含品牌信息(Nike、Adidas、Levi's、Uniqlo、Zara、Gucci、Puma、Chanel),并将所有匹配的品牌信息作为列表返回。如果没有找到品牌信息,则返回空列表。
(完)
更新时间:2025-09-19 13:06:41 标签:pandas python 品牌信息 商品描述