pandas中一列DataFrame下的Series包含多余的文本内容,想通过循环比对现有的关键字列表并赋值到新的列中怎么写
时间: 2023-03-30 19:02:56 浏览: 97
您可以使用apply函数和lambda表达式来实现这个功能。首先,您需要定义一个包含关键字的列表,然后使用apply函数和lambda表达式将每个Series值与关键字列表进行比较,并将匹配的关键字赋值到新的列中。以下是示例代码:
```
import pandas as pd
# 定义关键字列表
keywords = ['apple', 'banana', 'orange']
# 创建DataFrame
df = pd.DataFrame({'fruits': ['apple is good', 'banana is sweet', 'orange is juicy']})
# 定义函数,将Series值与关键字列表进行比较
def find_keyword(x):
for keyword in keywords:
if keyword in x:
return keyword
return 'no match'
# 使用apply函数和lambda表达式将匹配的关键字赋值到新的列中
df['keyword'] = df['fruits'].apply(lambda x: find_keyword(x))
# 打印结果
print(df)
```
输出结果如下:
```
fruits keyword
apple is good apple
1 banana is sweet banana
2 orange is juicy orange
```
相关问题
pandas中一列DataFrame包含多余的文本,想通过一列关键词进行比对,如果关键词在该文本中则返回关键词
可以使用str.contains()方法来实现,例如:
df['关键词匹配列'] = df['文本列'].str.contains('关键词')
其中,df为你的DataFrame,'文本列'为包含多余文本的列,'关键词'为你要匹配的关键词。这样,如果该文本中包含关键词,'关键词匹配列'对应的值就会为True,否则为False。
pandas新增一列并赋值为原dataframe的某一列
可以使用如下代码在 Pandas 中新增一列并赋值为原 DataFrame 的某一列:
```python
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# 新增一列并赋值为原 DataFrame 的某一列
df['C'] = df['A']
# 打印结果
print(df)
```
输出:
```
A B C
0 1 4 1
1 2 5 2
2 3 6 3
```
在这个示例中,我们创建了一个 DataFrame,然后使用 `df['C'] = df['A']` 新增了一列 `C` 并将其赋值为原 DataFrame 的列 `A`。最后打印出整个 DataFrame。
阅读全文