执行相同代码时的不同值

时间:2016-07-20 17:17:01

标签: python pandas pivot-table

我遇到了一个奇怪的情况,我相信我们大多数人都面临过这种情况。我有一段简单的代码,可以随机返回2组结果。在代码中,我有2个矩阵,其中的行代表memberID,列代表questionIDLevel。我正在尝试创建一个最终矩阵,它会给出每个学生在特定考试中的分数。这是一段代码:

encodedID = '123'

#get dataframe having only True,False,NaN
selectedTestsPivotCorrect = selectedTests[selectedTests['conceptname'] == encodedid].pivot_table(index=['memberid'],
                                                                                      columns=['questionid', 'irt_tlevel'],
                                                                                      values='correct', aggfunc=np.max)
#get dataframe having only 1,2,3,NaN
selectedTestsPivotLevel = selectedTests[selectedTests['conceptname'] == encodedid].pivot_table(index=['memberid'],
                                                                                   columns=['questionid', 'irt_tlevel'],
                                                                                   values='Level', aggfunc=np.max)
#replace True with 1
selectedTestsPivotCorrect = selectedTestsPivotCorrect.replace(True, 1)

#replace False with 0
selectedTestsPivotCorrect = selectedTestsPivotCorrect.replace(False, 0)

#replace NaN with 0
selectedTestsPivotCorrect.fillna(0, inplace=True)

#replace NaN with 0
selectedTestsPivotLevel.fillna(0, inplace=True)

#multiply corresponding cells of the 2 matrices and find row sums to get score on test
resultSet = (selectedTestsPivotCorrect * selectedTestsPivotLevel).sum(axis=1)

请注意,涉及selectedTestsencodedID的最基本变量根本没有变化,但是当我多次执行此代码时,我得到两组结果中的任何一组,让我们调用他们ResultSet AResultSet B

我在代码中发现了一个我无法发现的明显错误吗? pivot_table是否应对这场灾难负责?

0 个答案:

没有答案