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

时间:2017-12-25 15:15:23

标签: python pandas dataframe

我有一个系列:

    qbChatDialog.initForChat(QBChatService.getInstance());
    qbChatDialog.addMessageListener(chatMessageListener);

    DiscussionHistory discussionHistory = new DiscussionHistory();
    discussionHistory.setMaxStanzas(0);

    if (!qbChatDialog.isJoined()) {
        qbChatDialog.join(discussionHistory, new QBEntityCallback() {
            @Override
            public void onSuccess(Object o, Bundle bundle) {
                if (qbChatDialog != null) {
                    getMessage(qbChatDialog, false);
                }
            }

            @Override
            public void onError(QBResponseException e) {
                Log.e("QB Join", e.toString());
                Toast.makeText(QBChatActivity.this, "" + e.toString(), Toast.LENGTH_LONG).show();

            }
        });
    } else {
        if (qbChatDialog != null) {
            getMessage(qbChatDialog, false);
        }
    }

和数据框:

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

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

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

我尝试使用i=0 match=0 for pred in results['outcome']: if test.values[i] == pred: match+=1 i+=1 print match ,但答案是错误的。 并使用lambda但语法错误。

请指教。感谢

2 个答案:

答案 0 :(得分:4)

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

df.outcome.eq(s).sum()
4

答案 1 :(得分:2)

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

job2

接下来,将df, s = df.set_index('0').align(s, axis=0) 列与outcome中的值进行比较,并计算s值的数量 -

True