计算70 + GB文件中值的条件概率

时间:2017-03-01 18:31:39

标签: python pandas

我正在计算存储在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。

0 个答案:

没有答案