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