Starring = df['主演'].replace('...'|' ','NONE') 优化代码使其既能替换掉...又能替换掉空格
时间: 2023-06-27 18:01:52 浏览: 44
你可以使用正则表达式来实现同时替换多个字符,可以使用 `re.sub()` 函数。例如:
```python
import re
Starring = df['主演'].apply(lambda x: re.sub('[\s.]+', 'NONE', x))
```
这里的正则表达式 `[\s.]+` 匹配任意一个或多个空格或点号。`re.sub()` 函数将匹配到的字符用 `'NONE'` 替换。这样,所有的连续空格和点号都会被替换成单个 `'NONE'`。
相关问题
Starring = df['主演'].replace('...'|' ','NONE')优化代码
您可以使用正则表达式来替换多个空格和省略号,如下所示:
```python
import re
starring = df['主演'].replace('\.{3,}|\s+', 'NONE', regex=True)
```
这里的正则表达式`'\.{3,}|\s+'`将匹配三个或更多连续的点号(即省略号)或一个或多个连续的空格,并将它们替换为字符串“NONE”。`regex=True`参数告诉`replace()`方法使用正则表达式进行替换。
优化代码Starring = df['主演'].str.split(" ").replace('...',' ').str[0].value_counts().nlargest(15)
可以尝试使用pandas的链式操作来优化代码,如下所示:
```
Starring = df['主演'].str.replace('...', ' ').str.split(" ").explode().value_counts().nlargest(15)
```
这个代码将'...'替换为空格,然后将主演按空格分割成多个条目,再将这些条目拆分成多行,最后统计每个演员出现的次数并取前15个。这个方法避免了使用replace和str[],可以更高效地处理数据。