选择熊猫行,如果行元素包含在另一个行元素中

问题描述 投票:0回答:2

我有一个看起来像这样的熊猫数据框:

real_value, prediction
'invalid', 'inv'
'invalid', 'neg'
'invalid', 'inv'
'negative', 'neg'
'negative', 'neg'
'negative', 'neg'
'positive', 'pos'
'positive', 'pos'
'positive', 'inv'

我想选择其中预测和实际值不匹配的所有行,换句话说,我想获得一个看起来像的数据框:]

real_value, prediction
'invalid', 'neg'
'positive', 'inv'

我尝试过df.loc[~df.prediction.isin(df.real_value)],但这不起作用。可以根据用户指定的特定值轻松进行选择,例如df.loc[~df.prediction.isin(['neg'])],但我找不到基于行本身中出现的值进行选择的方法。

如何获得所需的选择?谢谢

python pandas dataframe
2个回答
0
投票

使用以下条件:

df[df['real_value'].str[:3].ne(df['prediction'])]

输出:

    real_value  prediction
1   invalid neg
8   positive    inv

0
投票

我希望这会有所帮助。

这也应该有所帮助。 Pandas Flexible Wrappers

df.loc[(df.real_value != df.prediction.astype(str).str[:3])]

这可能更整洁,根据@WenYoBen的评论:

df[df.Prediction.str[:3].ne(df.real_value)]
© www.soinside.com 2019 - 2024. All rights reserved.