Smoothing a binned averages I am trying to smooth some binned data. I have a discrete variable X which might best be thought of as time and a continuous variable Y. I want to know the average Y value for each value of X and this is pretty straight forward. However, if some specific X values have few associated Y values I suffer from high statistical error. I would like to smooth the averages by using the support from their adjacent bins.
An example might be illustrative. Let Y be days and X be sale price from a retail store. If I want to know the average sale price trend over time this can be easily calculated. However if there are days where only one or two items were sold they could cause the plot to fluctuate wildly. I would like to reduce statistical error on each day by incorporating the adjacent few days. I assume there are a number of ways to do this so please let me know if there is a standard. 
Please note I do not want to interpolate. I just want to control the statistical fluctuations. Also, the most recent day is likely of the most importance. Since this day only has bins on one side of it I suspect a bias from many methods. Is there a way to add an error bar to the adjusted average in a meaningful way?
----EDIT-----
It seems there are many methods available so I will describe my situation to make it more clear. We are calculating a price index at a car dealership. All sale values are negotiated so we can use this to understand market trends. Many cars are unique so we do not have an apples to apples comparison over time. This prevents a standard "Market Basket" approach. We have a machine learning model which predicts the sale price. We then make a partial dependence plot by predicting all cars ever sold at each time interval. The average of all cars at each time gives the price index. This is just the standard partial dependence in time but has this useful implication. Anyway, there are some fluctuations which come from the model. In some time periods few cars were sold so we would want to smooth dependent on the training data volumes. The averages themselves actually all have the same number of data points since it is a partial dependence plot.
 A: I don't think there is a single best way to approach this problem.  It depends on the nature of the data and what exactly you are trying to discover with your analysis.
If you believe that the price varies smoothly over time, then you could just estimate a regression model for the time trend, which would automatically downweight the areas with few data points.  If the shape of the curve is non-linear an additive model using splines might be suitable.
For a more descriptive approach moving average or local regressions (eg loess) would also work.  As you say the most recent day is the most important then an 'exponentially weighted moving average' (EWMA) might be what you want https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average.
If you believe that price is geniunely more variable day to day then a random effects model could be appropriate, with for example an autoregressive correlation between the true underlying prices on each day.  From this you would obtain a shrunk estimate of the price each day, with more shrinkage toward the adjacent points if there are fewer actual data points on each day.  I could elaborate on any of these approaches if you can add more desciption to the question. 
A: Answering my own question a year later after the system is in production. Following @George Savva's suggestions we looked at a number of different smoothed fits. We eventually decided on LOESS (locally estimated scatterplot smoothing). However we only want to smooth when the error for the specific point is high. To accommodate this we took the average value at the points when statistical error was low and the loess value when the error was high. To move from one value to the other smoothly we used the Gauss error function (ie ERF()) to interpolate. The ERF() is a turn on curve which is 0 at low values and 1 at high values. We used the statistical error passed through the ERF() to give the fraction of LOESS to use. The parameters in the ERF() were tuned by hand.
