如何使用python在数据框中添加新的计算列

时间:2016-11-16 18:48:47

标签: python

这可能是一个新手的问​​题,但是,我花了几个小时来弄清楚如何做到这一点。 好的,我有一个包含150个变量和目标的数据框。样本如下:

train
Out[1]: 
        var1  var2    target
0          A      C      10.5   
1          A      D      13.5          
2          B      D      2.5     

我想要添加具有目标均值的列的新数据框。 例如,var1_new的row1应该具有目标的平均值,其中var1 == A,即12((10.5 + 13.5)/ 2)

我无法在python中解决这个问题。 任何帮助将不胜感激。

train_new
Out[2]: 
          var1   var2  target    var1_new   var2_new   
0          A      C      10.5       12       10.5             
1          A      D      13.5       12        8       
2          B      D      2.5        2.5       8      

1 个答案:

答案 0 :(得分:1)

double calculateProbability(int trials, int people) {

    //for trials = 10_000, people = 5
    int timesWithSharedBirthday =  IntStream.range(0,trials)     // Run 10_000 trials
                                            // generate 5 bdays, count distinct ones. Filter out those with 5 distinct
                                            .filter(i -> ThreadLocalRandom.current().ints(people,1,365).distinct().count() != people) 
                                            .count();          // Add up the runs without five distinct bdays.

    return probability = 100.0 * timesWithSharedBirthday / trials;
}