

def add_year(self, year, force=False):
    'Adds temperature data to internal pandas timeseries\n\n        Parameters\n        ----------\n        year : {int, string}\n            The year for which data should be fetched, e.g. "2010".\n        '
    if ((not force) and self._year_fetch_attempted(year)):
        if self._year_in_series(year):
            return
        else:
            dates = pd.date_range('{}-01-01 00:00'.format(year), '{}-01-01 00:00'.format((int(year) + 1)), freq=self.freq)[:(- 1)]
            new_series = pd.Series(None, index=dates, dtype=float)
            self.tempC = self.tempC.append(new_series).sort_index().resample(self.freq).mean()
            self.save_to_cache()
            return
    data = self.client.get_isd_data(self.station, year)
    dates = pd.date_range('{}-01-01 00:00'.format(year), '{}-01-01 00:00'.format((int(year) + 1)), freq=self.freq)[:(- 1)]
    new_series = pd.Series(None, index=dates, dtype=float)
    for hour in data:
        if (not pd.isnull(hour['temp_C'])):
            dt = data['datetime']
            new_series[datetime(dt.year, dt.month, dt.day, dt.hour)] = hour['temp_C']
    self.tempC = self.tempC.append(new_series).sort_index().resample(self.freq).mean()
    self.save_to_cache()
    self._year_fetches_attempted.add(year)

dataset/ETHPy150Open impactlab/eemeter/eemeter/weather.py ISDWeatherSource.add_year/VarMisuse@246/384 `hour`->`data`