python - 匹配另一个数据框中的文本并用识别的实体填充缺失的列
问题描述
我想用另一个数据框中的已识别关键字填充数据框中缺少的 Nan。
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'models': ['A3', '520', 'clio3', 'C3']})
df2 = pd.DataFrame({'description': ['I am selling a Citroen C3', 'I sell my Audi A3'], 'model': [np.nan, np.nan]})
更新:这种情况
df2 = pd.DataFrame({'description': ['I am selling a BMW 520 with good condition', 'I sell my Audi very good', 'clio3 for sale'], 'model': [np.nan,'A3', np.nan]})
不应替换“A3”。
预期结果
解决方案
与模式一起使用s.str.extract()
:
df2.model=df2.description.str.extract(r'({})'.format('|'.join(df1.models)),expand=False)
print(df2)
description model
0 I am selling a Citroen C3 C3
1 I sell my Audi A3 A3
其中:r'({})'.format('|'.join(df1.models))
给出'(A3|520|clio3|C3)'
推荐阅读
- docker - 我们可以在 K8S 的 POD 中执行到容器中吗?
- twilio - Twilio Resonse 和 Dial Verb 刚刚被读出
- java - 按 TAB 键填充 JTable
- java - 使用 Fargate 作为工作人员的 AWS Stepfunctions 工作流程 - 我如何将输出发送到下一步?
- javascript - 将javascript数组范围分块为n个相等的部分?
- php - 如何在 Laravel 中以模式重定向并显示信息
- c# - 未提供的参数化查询 ***
- javascript - 计算字典中的项目数
- c# - 如何在 Unity C# 中为实例化对象提供唯一 ID
- javascript - 如何将数组中多个 1 元素的值从 ajax 传递到 PHP?