在Pandas dataframe 中使用正则表达式创建新列

bluesky1年前 ⋅ 336 阅读

ChatGPT的回答仅作参考:

要在Pandas dataframe 中使用正则表达式创建新列,可以使用 `str.extract()` 方法。该方法可以从一个字符串列中提取匹配正则表达式的子字符串,并将其存储在新列中。

例如,假设我们有一个包含电子邮件地址的列 `email`,我们想从中提取用户名和域名,并将它们存储在新列中。我们可以使用以下代码:

``` python
import pandas as pd

# 创建示例数据
data = {'email': ['john.doe@example.com', 'jane.doe@example.com', 'bob.smith@example.com']}
df = pd.DataFrame(data)

# 使用正则表达式提取用户名和域名
df['username'] = df['email'].str.extract(r'(\w+)\.')
df['domain'] = df['email'].str.extract(r'@(\w+\.\w+)')

# 显示结果
print(df)
```

输出:

```
                 email username          domain
0  john.doe@example.com     john      example.com
1  jane.doe@example.com     jane      example.com
2  bob.smith@example.com      bob      example.com
```

在上面的代码中,我们使用 `str.extract()` 方法和正则表达式来提取用户名和域名。在正则表达式中,`\w+` 匹配一个或多个字母数字字符,`\.` 匹配一个点号,`@` 匹配一个 at 符号,`(\w+\.\w+)` 匹配一个域名。我们将提取的用户名和域名存储在新列 `username` 和 `domain` 中。

全部评论: 0

    相关推荐