Python Beginner - "TypeError: '<' не поддерживается между экземплярами 'float' и 'str'" - PullRequest
0 голосов
/ 27 сентября 2019

Ниже приведен код, который я набираю в блокноте Jupyter,

  • из pandas import read_csv
  • из matplotlib import pyplot
  • series = read_csv ('daily-минимальная температура.csv ', заголовок = 0, index_col = 0)
  • resample = series.resample (' M ')

Образец данных:

enter image description here

Я получаю ошибку ниже:

Ошибка типа: '<' не поддерживается между экземплярами 'float' и 'str' </strong>

Пожалуйста, подскажите, что мне не хватает, проверьте подробную ошибку ниже:


TypeError Traceback (most recent call last)
<ipython-input-9-93b88286f0b9> in <module>
----> 1 resample = series.resample('M')

//anaconda3/lib/python3.7/site-packages/pandas/core/generic.py in resample(self, rule, how, axis, fill_method, closed, label, convention, kind, loffset, limit, base, on, level)
   8153                      axis=axis, kind=kind, loffset=loffset,
   8154                      convention=convention,
-> 8155                      base=base, key=on, level=level)
   8156         return _maybe_process_deprecations(r,
   8157                                            how=how,

//anaconda3/lib/python3.7/site-packages/pandas/core/resample.py in resample(obj, kind, **kwds)
   1248     """
   1249     tg = TimeGrouper(**kwds)
-> 1250     return tg._get_resampler(obj, kind=kind)
   1251 
   1252 

//anaconda3/lib/python3.7/site-packages/pandas/core/resample.py in _get_resampler(self, obj, kind)
   1358 
   1359         """
-> 1360         self._set_grouper(obj)
   1361 
   1362         ax = self.ax

//anaconda3/lib/python3.7/site-packages/pandas/core/groupby/grouper.py in _set_grouper(self, obj, sort)
    183         if (self.sort or sort) and not ax.is_monotonic:
    184             # use stable sort to support first, last, nth
--> 185             indexer = self.indexer = ax.argsort(kind='mergesort')
    186             ax = ax.take(indexer)
    187             obj = obj._take(indexer, axis=self.axis, is_copy=False)

//anaconda3/lib/python3.7/site-packages/pandas/core/indexes/base.py in argsort(self, *args, **kwargs)
   4338         if result is None:
   4339             result = np.array(self)
-> 4340         return result.argsort(*args, **kwargs)
   4341 
   4342     def get_value(self, series, key):

TypeError: '<' not supported between instances of 'float' and 'str'

1 Ответ

0 голосов
/ 28 сентября 2019

Для pd.resample для фреймов данных необходимо указать столбец даты и времени для параметра on -, см. Пример из документации.Здесь это будет

df.resample('M', on='Date')

Если «Дата» является индексом, это необязательно.Кроме того, вам необходимо преобразовать столбец даты в datetime:

df['Date'] = pd.to_datetime(df['Date'], format='%Y%m%d')

, если вы еще этого не сделали.

...