执行同一代码时的不同值

2024-05-17 17:03:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一个奇怪的情况,我相信我们大多数人都遇到过。我有一段简单的代码,随机返回两组结果。在代码中,我有两个矩阵,行表示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造成了这场灾难吗


Tags: 代码falsetruegetwithtable矩阵nan