我遇到了一个奇怪的情况,我相信我们大多数人都遇到过。我有一段简单的代码,随机返回两组结果。在代码中,我有两个矩阵,行表示memberID
,列表示questionID
和Level
。我试着创建一个最终的矩阵,它会给我每个学生在一个特定测试中的分数。下面是一段代码:
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)
请注意,涉及selectedTests
和encodedID
的最基本变量根本没有变化,但是,当我多次执行此代码时,我会得到两组结果中的任何一组,我们称它们为ResultSet A
和ResultSet B
我是否在代码中犯了一个明显的错误,我无法发现?是pivot_table
造成了这场灾难吗
目前没有回答
相关问题 更多 >
编程相关推荐