Python如何过滤A列中的子字符串在B列的字符串中找到的数据框?

标签 python dataframe search filter

在数据框中,如果在同一行的句子列中的字符串中找到标签列中的字符串,我想对其进行过滤并保留行:

输入数据框(某些行为空):

<表类=“s-表”> <标题> 句子 标签 <正文> A遇见B 一个 C死了 X D D去了伦敦和柏林 伦敦和柏林 E正在 sleep

输出数据帧:

<表类=“s-表”> <标题> 句子 标签 <正文> A遇见B 一个 D去了伦敦和柏林 伦敦和柏林

最佳答案

这个怎么样?

from io import StringIO

import pandas as pd


s = """sentence labels
A met B A
C is dead   X
D
D went to London and Berlin London and Berlin
E is sleeping   """

df = pd.read_csv(StringIO(s), sep="\t")

print(df)
                      sentence             labels
0                      A met B                  A
1                    C is dead                  X
2                            D                NaN
3  D went to London and Berlin  London and Berlin
4                E is sleeping                NaN

假设 NaN 值将被视为空字符串...

out = df.loc[
    # fill missing vals with empty strings to avoid TypeError
    df.fillna("")
    # check if labels in sentence iteratively 
    # while also making making sure labels are not empty
    .apply(
        lambda r: r["labels"] in r["sentence"] and bool(r["labels"]),
        axis="columns",
    )
]

print(out)
                      sentence             labels
0                      A met B                  A
3  D went to London and Berlin  London and Berlin

关于Python如何过滤A列中的子字符串在B列的字符串中找到的数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76148123/

相关文章:

python - 使用 TensorFlow 2.0 Alpha 时无法在 Tensorboard 中看到 keras 模型图

r - 删除数据框中的行,这些行在另一个数据框的相应行中具有特定值

pandas - 将行中的每个值与 pandas 数据框中的其他行配对

python - 如何在字符串列表中搜索关键字并返回该字符串?

performance - 非常快的文档相似度

python - 无法使用 ffmpeg 从 mp4 文件创建音频文件

python - matplotlib:如何获取现有 twinx() 轴的句柄?

search - emacs:在区域上搜索和替换

python - 编写用于更改比例值的 MEL/Python 脚本

python - 删除 pandas dataframe 列中包含 False 的行