将数据框列的匹配值与Series值相加

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

我有一个系列:

350    0
254    1
490    0
688    0
393    1
30     1

和数据帧:

       0   outcome
0    350     1
1    254     1
2    490     0
3    688     0
4    393     0
5     30     1

以下代码用于计算数据框中Series和results列之间的匹配总数。除了下面还有其他更好的方法吗?

i=0
match=0
for pred in results['outcome']:
    if test.values[i] == pred:
        match+=1
    i+=1
print match

我尝试使用results['Survived'].eq(labels_test).sum(),但答案是错误的。并使用lambda但语法错误。

请指教。谢谢

python pandas dataframe
2个回答
4
投票

您可以通过映射系列进行比较,即

(df['0'].map(s) == df['outcome']).sum()

4

2
投票

首先,使用align对齐数据框和系列。

df, s = df.set_index('0').align(s, axis=0)

接下来,将outcome列与s中的值进行比较,并计算True值的数量 -

df.outcome.eq(s).sum()
4
© www.soinside.com 2019 - 2024. All rights reserved.