我正在计算存储在csv
文件中的值的条件概率,该文件的大小为70多GB。样本数据集如下:
Question 1 Question 2
[ 'a', 'b']
[ 'a', 'c']
[ 'a', 'c']
[ 'd', 'e']
[ 'f', 'g']
有数百万这样的记录。我想计算Question 2
的条件概率,给定Question 1
。在此示例中,条件概率如下:
Question 1 Question 2 Probs
[ 'a', 'b'] 0.33
[ 'a', 'c'] 0.66
[ 'd', 'e'] 1.00
[ 'f', 'g'] 1.00
我理想情况下可以使用以下代码(我为其他类似目的编写的代码):
probs = IncorrectQuestions_df.groupby('Concept1').size().div(len(IncorrectQuestions_df))
IncorrectQuestions_probs = pd.DataFrame(IncorrectQuestions_df.groupby(['Question1', 'Question2'])
.size()
.div(len(IncorrectQuestions_df))
.div(probs, axis=0, level=0)
,columns=['Probs'])
但是这个方法的问题在于它需要内存中的整个dataframe
。鉴于70 GB的文件,我没有把文件保存在内存中的奢侈,所以我在这里寻找用于计算条件概率的内存有效替代方案。
任何指针都会受到赞赏。
TIA。