📅  最后修改于: 2023-12-03 14:45:04.314000             🧑  作者: Mango
在 Pandas 中,当我们需要对 DataFrame 中的某一列进行正则表达式处理时,可以使用 str
属性来完成。下面是具体的实现步骤:
import pandas as pd
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'Dave'],
'age': [25, 32, 18, 47],
'address': ['123 Main St', '456 Maple Ave', '789 Oak Blvd', '1011 Pine Ave']})
比如,我们想要提取地址中的数字部分,可以使用 str.extract
方法。它需要一个正则表达式作为参数,返回符合正则表达式的第一个字符串。
df['address'].str.extract(r'(\d+)')
这里使用的正则表达式 (\d+)
匹配了字符串中的一个或多个数字。输出结果为:
0
0 123
1 456
2 789
3 1011
我们还可以使用 str.findall
方法,它会返回符合正则表达式的所有字符串的列表。
df['address'].str.findall(r'(\d+)')
输出结果为:
0 [123]
1 [456]
2 [789]
3 [1011, 222]
apply
方法使用正则表达式当我们需要对 DataFrame 中的多列进行正则表达式处理时,可以结合 apply
方法实现。比如,我们想要从姓名和地址中提取所有的字母。
df[['name', 'address']].apply(lambda x: x.str.findall(r'[a-zA-Z]+'))
输出结果为:
name address
0 [Alice] [Main, St]
1 [Bob] [Maple, Ave]
2 [Charlie] [Oak, Blvd]
3 [Dave] [Pine, Ave]
从输出结果可以看出,我们成功地对 DataFrame 中的多列都进行了正则表达式处理。