现有一单列dataframe,该列中每行的内容由一个字谜“n"字符,一个空格,和一个国家名组成,如何用正则表达式提取国家名称,给出代码
时间: 2024-05-09 22:16:01 浏览: 103
pandas.DataFrame的pivot()和unstack()实现行转列
可以使用正则表达式来提取国家名称。以下是一个示例代码:
```python
import pandas as pd
import re
# 创建一个示例DataFrame
df = pd.DataFrame({'riddles': ['n USA', 'n China', 'n Japan']})
# 编译正则表达式
regex = re.compile(r'n\s(.*)')
# 应用正则表达式并提取国家名称
df['countries'] = df['riddles'].apply(lambda x: regex.search(x).group(1))
print(df)
```
输出结果为:
```
riddles countries
0 n USA USA
1 n China China
2 n Japan Japan
```
这里使用了正则表达式 `n\s(.*)`,它匹配以 "n " 开头的字符串,并提取后面的所有字符作为国家名称。使用 `apply` 函数将正则表达式应用到每个单元格,并使用 `group(1)` 提取匹配到的第一个分组(即国家名称)。最后将提取的国家名称存储在新列 `countries` 中。
阅读全文