根据一列从另一列的值开始切片数据框

Slice a dataframe based on one column starting with the value of another column

我有一个名为 data 的数据框,它看起来像这样:

|...|category|...|ngram|...|

我需要将此数据帧切片为 categoryngram 的值开头的实例。因此,例如,如果我有以下实例:

然后应该从生成的数据框中删除该实例。

在 T-SQL 中,我使用以下查询(这可能不是最好的方法,但它有效):

SELECT
   *
FROM   mytable
WHERE  category NOT LIKE ngram+'%';

我已经阅读了一些内容,我最好的尝试是:

data[data.category.str.startswith(data.ngram.str) == True]

但这不会 return 任何行,反之亦然(使用 == True

#use df.apply to filter the rows with category starts with ngram.
data[data.apply(lambda x: x.category.startswith(x.ngram), axis=1)]