pandas 用str.contains 一个字段如果包含某两个字就生成新的一列判断其类别
时间: 2024-03-09 14:44:55 浏览: 56
可以使用 Pandas 的 loc 方法结合 str.contains 方法来实现。具体的步骤如下:
1. 使用 loc 方法筛选出包含某两个字的行。
2. 将上一步得到的行的索引作为 loc 方法的输入,生成新的一列作为类别。
具体的代码如下所示:
``` python
import pandas as pd
# 生成示例数据
data = {
'text': ['hello world', 'world hello', 'hello', 'world', 'hi world']
}
df = pd.DataFrame(data)
# 使用 loc 方法结合 str.contains 方法生成新的一列作为类别
df.loc[df['text'].str.contains('hello') & df['text'].str.contains('world'), 'category'] = 'category1'
df.loc[~(df['text'].str.contains('hello') & df['text'].str.contains('world')), 'category'] = 'category2'
print(df)
```
运行结果如下所示:
```
text category
0 hello world category1
1 world hello category1
2 hello category2
3 world category2
4 hi world category2
```
在上面的代码中,我们使用 loc 方法结合 str.contains 方法对 text 列进行处理,生成 category 列作为类别。具体来说,如果某个 text 包含 hello 和 world 这两个字,就将其归为 category1 类别,否则归为 category2 类别。最终的结果存储在 df['category'] 列中。需要注意的是,在 loc 方法中,我们使用 ~ 符号表示取反,即取不包含 hello 和 world 这两个字的行。
阅读全文