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

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[df['real_value'].str[:3].ne(df['prediction'])]

输出:
    real_value  prediction
1   invalid     neg
8   positive    inv

ne返回的值不等于of series和other。这是元素方面的。您不能使用isin,因为这需要iterable、Series、DataFrame或dict,所以您不是在比较real_valueprediction元素。

关于python - 如果行元素包含在另一个行元素中,请选择 Pandas 行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58170585/

10-12 19:21
查看更多