📜  pandas 显示带有正则表达式的列 - Python (1)

📅  最后修改于: 2023-12-03 14:45:04.314000             🧑  作者: Mango

Pandas 显示带有正则表达式的列 - Python

在 Pandas 中,当我们需要对 DataFrame 中的某一列进行正则表达式处理时,可以使用 str 属性来完成。下面是具体的实现步骤:

  1. 导入 pandas 库
import pandas as pd
  1. 创建 DataFrame
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']})
  1. 对某一列进行正则表达式处理

比如,我们想要提取地址中的数字部分,可以使用 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]
  1. 结合 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 中的多列都进行了正则表达式处理。