コード例 #1
0
ファイル: datetimes.py プロジェクト: dwhu/pandas
    def get_value(self, series, key):
        """
        Fast lookup of value from 1-dimensional ndarray. Only use this if you
        know what you're doing
        """

        if isinstance(key, (datetime, np.datetime64)):
            return self.get_value_maybe_box(series, key)

        if isinstance(key, time):
            locs = self.indexer_at_time(key)
            return series.take(locs)

        try:
            value = Index.get_value(self, series, key)
        except KeyError:
            try:
                loc = self._get_string_slice(key)
                return series[loc]
            except (TypeError, ValueError, KeyError):
                pass

            try:
                return self.get_value_maybe_box(series, key)
            except (TypeError, ValueError, KeyError):
                raise KeyError(key)
        else:
            return com.maybe_box(self, value, series, key)
コード例 #2
0
ファイル: timedeltas.py プロジェクト: saloni30agr/pandas
    def get_value(self, series, key):
        """
        Fast lookup of value from 1-dimensional ndarray. Only use this if you
        know what you're doing
        """

        if _is_convertible_to_td(key):
            key = Timedelta(key)
            return self.get_value_maybe_box(series, key)

        try:
            value = Index.get_value(self, series, key)
        except KeyError:
            try:
                loc = self._get_string_slice(key)
                return series[loc]
            except (TypeError, ValueError, KeyError):
                pass

            try:
                return self.get_value_maybe_box(series, key)
            except (TypeError, ValueError, KeyError):
                raise KeyError(key)
        else:
            return com.maybe_box(self, value, series, key)
コード例 #3
0
ファイル: datetimes.py プロジェクト: vinks4u/pandas
    def get_value(self, series, key):
        """
        Fast lookup of value from 1-dimensional ndarray. Only use this if you
        know what you're doing
        """

        if isinstance(key, datetime):

            # needed to localize naive datetimes
            if self.tz is not None:
                if key.tzinfo is not None:
                    key = Timestamp(key).tz_convert(self.tz)
                else:
                    key = Timestamp(key).tz_localize(self.tz)

            return self.get_value_maybe_box(series, key)

        if isinstance(key, time):
            locs = self.indexer_at_time(key)
            return series.take(locs)

        try:
            return com.maybe_box(self, Index.get_value(self, series, key), series, key)
        except KeyError:
            try:
                loc = self._get_string_slice(key)
                return series[loc]
            except (TypeError, ValueError, KeyError):
                pass

            try:
                return self.get_value_maybe_box(series, key)
            except (TypeError, ValueError, KeyError):
                raise KeyError(key)
コード例 #4
0
ファイル: datetimes.py プロジェクト: xavierohan/pandas
    def get_value(self, series, key):
        """
        Fast lookup of value from 1-dimensional ndarray. Only use this if you
        know what you're doing
        """
        if not is_scalar(key):
            raise InvalidIndexError(key)

        if isinstance(key, (datetime, np.datetime64)):
            return self.get_value_maybe_box(series, key)

        if isinstance(key, time):
            locs = self.indexer_at_time(key)
            return series.take(locs)

        if isinstance(key, str):
            try:
                loc = self._get_string_slice(key)
                return series[loc]
            except (TypeError, ValueError, KeyError):
                pass
            try:
                stamp = self._maybe_cast_for_get_loc(key)
                loc = self.get_loc(stamp)
                return series[loc]
            except (KeyError, ValueError):
                raise KeyError(key)

        value = Index.get_value(self, series, key)
        return com.maybe_box(self, value, series, key)
コード例 #5
0
ファイル: period.py プロジェクト: fleimgruber/pandas
    def get_value(self, series, key):
        """
        Fast lookup of value from 1-dimensional ndarray. Only use this if you
        know what you're doing
        """
        s = com.values_from_object(series)
        try:
            return com.maybe_box(self,
                                 super(PeriodIndex, self).get_value(s, key),
                                 series, key)
        except (KeyError, IndexError):
            try:
                asdt, parsed, reso = parse_time_string(key, self.freq)
                grp = resolution.Resolution.get_freq_group(reso)
                freqn = resolution.get_freq_group(self.freq)

                vals = self._ndarray_values

                # if our data is higher resolution than requested key, slice
                if grp < freqn:
                    iv = Period(asdt, freq=(grp, 1))
                    ord1 = iv.asfreq(self.freq, how='S').ordinal
                    ord2 = iv.asfreq(self.freq, how='E').ordinal

                    if ord2 < vals[0] or ord1 > vals[-1]:
                        raise KeyError(key)

                    pos = np.searchsorted(self._ndarray_values, [ord1, ord2])
                    key = slice(pos[0], pos[1] + 1)
                    return series[key]
                elif grp == freqn:
                    key = Period(asdt, freq=self.freq).ordinal
                    return com.maybe_box(self, self._engine.get_value(s, key),
                                         series, key)
                else:
                    raise KeyError(key)
            except TypeError:
                pass

            period = Period(key, self.freq)
            key = period.value if isna(period) else period.ordinal
            return com.maybe_box(self, self._engine.get_value(s, key),
                                 series, key)
コード例 #6
0
    def get_value(self, series, key):
        """
        Fast lookup of value from 1-dimensional ndarray. Only use this if you
        know what you're doing
        """
        s = com.values_from_object(series)
        try:
            return com.maybe_box(self,
                                 super(PeriodIndex, self).get_value(s, key),
                                 series, key)
        except (KeyError, IndexError):
            try:
                asdt, parsed, reso = parse_time_string(key, self.freq)
                grp = resolution.Resolution.get_freq_group(reso)
                freqn = resolution.get_freq_group(self.freq)

                vals = self._ndarray_values

                # if our data is higher resolution than requested key, slice
                if grp < freqn:
                    iv = Period(asdt, freq=(grp, 1))
                    ord1 = iv.asfreq(self.freq, how='S').ordinal
                    ord2 = iv.asfreq(self.freq, how='E').ordinal

                    if ord2 < vals[0] or ord1 > vals[-1]:
                        raise KeyError(key)

                    pos = np.searchsorted(self._ndarray_values, [ord1, ord2])
                    key = slice(pos[0], pos[1] + 1)
                    return series[key]
                elif grp == freqn:
                    key = Period(asdt, freq=self.freq).ordinal
                    return com.maybe_box(self, self._engine.get_value(s, key),
                                         series, key)
                else:
                    raise KeyError(key)
            except TypeError:
                pass

            period = Period(key, self.freq)
            key = period.value if isna(period) else period.ordinal
            return com.maybe_box(self, self._engine.get_value(s, key), series,
                                 key)
コード例 #7
0
ファイル: datetimes.py プロジェクト: vinks4u/pandas
 def get_value_maybe_box(self, series, key):
     # needed to localize naive datetimes
     if self.tz is not None:
         key = Timestamp(key)
         if key.tzinfo is not None:
             key = key.tz_convert(self.tz)
         else:
             key = key.tz_localize(self.tz)
     elif not isinstance(key, Timestamp):
         key = Timestamp(key)
     values = self._engine.get_value(com.values_from_object(series), key, tz=self.tz)
     return com.maybe_box(self, values, series, key)
コード例 #8
0
    def get_value(self, series, key):
        """
        Fast lookup of value from 1-dimensional ndarray. Only use this if you
        know what you're doing
        """

        if isinstance(key, str):
            try:
                key = Timedelta(key)
            except ValueError:
                raise KeyError(key)

        if isinstance(key, self._data._recognized_scalars) or key is NaT:
            key = Timedelta(key)
            return self.get_value_maybe_box(series, key)

        value = Index.get_value(self, series, key)
        return com.maybe_box(self, value, series, key)
コード例 #9
0
ファイル: period.py プロジェクト: saloni30agr/pandas
    def get_value(self, series, key):
        """
        Fast lookup of value from 1-dimensional ndarray. Only use this if you
        know what you're doing
        """
        if is_integer(key):
            return series.iat[key]

        if isinstance(key, str):
            asdt, reso = parse_time_string(key, self.freq)
            grp = resolution.Resolution.get_freq_group(reso)
            freqn = resolution.get_freq_group(self.freq)

            vals = self._ndarray_values

            # if our data is higher resolution than requested key, slice
            if grp < freqn:
                iv = Period(asdt, freq=(grp, 1))
                ord1 = iv.asfreq(self.freq, how="S").ordinal
                ord2 = iv.asfreq(self.freq, how="E").ordinal

                if ord2 < vals[0] or ord1 > vals[-1]:
                    raise KeyError(key)

                pos = np.searchsorted(self._ndarray_values, [ord1, ord2])
                key = slice(pos[0], pos[1] + 1)
                return series[key]
            elif grp == freqn:
                key = Period(asdt, freq=self.freq)
                loc = self.get_loc(key)
                return series.iloc[loc]
            else:
                raise KeyError(key)

        elif isinstance(key, Period) or key is NaT:
            ordinal = key.ordinal if key is not NaT else NaT.value
            loc = self._engine.get_loc(ordinal)
            return series[loc]

        # slice, PeriodIndex, np.ndarray, List[Period]
        value = Index.get_value(self, series, key)
        return com.maybe_box(self, value, series, key)
コード例 #10
0
    def get_value(self, series, key):
        """
        Fast lookup of value from 1-dimensional ndarray. Only use this if you
        know what you're doing
        """
        if is_integer(key):
            return series.iat[key]

        if isinstance(key, str):
            try:
                loc = self._get_string_slice(key)
                return series[loc]
            except (TypeError, ValueError):
                pass

            asdt, reso = parse_time_string(key, self.freq)
            grp = resolution.Resolution.get_freq_group(reso)
            freqn = resolution.get_freq_group(self.freq)

            # _get_string_slice will handle cases where grp < freqn
            assert grp >= freqn

            if grp == freqn:
                key = Period(asdt, freq=self.freq)
                loc = self.get_loc(key)
                return series.iloc[loc]
            else:
                raise KeyError(key)

        elif isinstance(key, Period) or key is NaT:
            ordinal = key.ordinal if key is not NaT else NaT.value
            loc = self._engine.get_loc(ordinal)
            return series[loc]

        # slice, PeriodIndex, np.ndarray, List[Period]
        value = Index.get_value(self, series, key)
        return com.maybe_box(self, value, series, key)
コード例 #11
0
ファイル: timedeltas.py プロジェクト: Itay4/pandas
    def get_value(self, series, key):
        """
        Fast lookup of value from 1-dimensional ndarray. Only use this if you
        know what you're doing
        """

        if _is_convertible_to_td(key):
            key = Timedelta(key)
            return self.get_value_maybe_box(series, key)

        try:
            return com.maybe_box(self, Index.get_value(self, series, key),
                                 series, key)
        except KeyError:
            try:
                loc = self._get_string_slice(key)
                return series[loc]
            except (TypeError, ValueError, KeyError):
                pass

            try:
                return self.get_value_maybe_box(series, key)
            except (TypeError, ValueError, KeyError):
                raise KeyError(key)
コード例 #12
0
ファイル: timedeltas.py プロジェクト: Itay4/pandas
 def get_value_maybe_box(self, series, key):
     if not isinstance(key, Timedelta):
         key = Timedelta(key)
     values = self._engine.get_value(com.values_from_object(series), key)
     return com.maybe_box(self, values, series, key)
コード例 #13
0
ファイル: timedeltas.py プロジェクト: vesh/pandas
 def get_value_maybe_box(self, series, key):
     if not isinstance(key, Timedelta):
         key = Timedelta(key)
     values = self._engine.get_value(com.values_from_object(series), key)
     return com.maybe_box(self, values, series, key)
コード例 #14
0
ファイル: timedeltas.py プロジェクト: sduzjp/Python
 def get_value_maybe_box(self, series, key: Timedelta):
     values = self._engine.get_value(com.values_from_object(series), key)
     return com.maybe_box(self, values, series, key)
コード例 #15
0
ファイル: datetimes.py プロジェクト: zergioz/pandas
 def get_value_maybe_box(self, series, key):
     key = self._maybe_cast_for_get_loc(key)
     values = self._engine.get_value(com.values_from_object(series), key, tz=self.tz)
     return com.maybe_box(self, values, series, key)