SeedRandom[1]
    data = Join[RandomReal[1, {300000, 2}], RandomChoice[{0, 1}, {300000, 1}], 2];
    Dimensions[data]
> {300000, 3}

    binlims = Through[{Floor[Min@#, .01] &, Ceiling[Max@#, .01] &}@#] & /@ Transpose[data];
    {xbins, ybins} = {##, -Subtract[##]/5} & @@@ Most[binlims];
    binlists = BinLists[data, xbins, ybins, {0, 2, 2}];
    binmeans =  Flatten /@ Map[Mean, binlists[[All, All, All, All, -1]], {-2}];
    {xticks, yticks} = MapIndexed[{#2[[1]], #} &, #] & /@ Range @@@ {xbins, ybins};

    MatrixPlot[binmeans, DataReversed -> True, ColorFunction -> "Rainbow",
     FrameTicks -> {{#, #} & @ yticks, {#, #} & @ xticks}]

[![enter image description here][1]][1]


  [1]: https://i.sstatic.net/CgZeb.png