Как мне отфильтровать по дате и посчитать эти даты, используя реляционную алгебру (Reframe)? - PullRequest
0 голосов
/ 04 февраля 2020

Я действительно застрял. Я прочитал документацию Reframe https://reframe.readthedocs.io/en/latest/, основанную на pandas, и я попробовал несколько вещей самостоятельно, но все равно не работает. Итак, я получил файл CSV под названием weddings, который выглядит примерно так:

Weddings, Date
Wedding1,20181107
Wedding2,20181107

и еще много строк. Как видите, в столбце даты есть дубликаты, но я не думаю, что это имеет значение. Я хочу посчитать количество свадеб, отфильтрованных по дате, например, количество свадеб после 5 октября 2016 года (20161005). Итак, сначала я попробовал это:

Weddings = Relation('weddings.csv')
Weddings.sort(['Date']).query('Date > 20161005').project(['Weddings', 'Date'])

Это кажется мне логичным, но я получил ключевую ошибку «Дата» и не знаю почему? Итак, я попробовал что-то более простое

Weddings = Relation('weddings.csv')
Weddings.groupby(['Date']).count()

И это тоже не сработало, я все еще получаю Keyerror 'Date' и не знаю почему. Кто-нибудь может мне помочь?

Отслеживание трассы

KeyError                                  Traceback (most recent call last)
<ipython-input-44-b358cdf55fdb> in <module>()
  1 
  2 Weddings = Relation('weddings.csv')
----> 3 weddings.sort(['Date']).query('Date > 20161005').project(['Weddings', 'Date'])
  4 
  5 

~\Documents\Reframe.py in sort(self, *args, 
**kwargs)
110         """
111 
--> 112         return Relation(super().sort_values(*args, **kwargs))
113 
114     def intersect(self, other):

~\Anaconda3\lib\site-packages\pandas\core\frame.py in sort_values(self, by, 
axis, ascending, inplace, kind, na_position)
4416             by = by[0]
4417             k = self._get_label_or_level_values(by, axis=axis,
-> 4418                                                 stacklevel=stacklevel)
4419 
4420             if isinstance(ascending, (tuple, list)):

~\Anaconda3\lib\site-packages\pandas\core\generic.py in 
_get_label_or_level_values(self, key, axis, stacklevel)
1377             values = self.axes[axis].get_level_values(key)._values
1378         else:
-> 1379             raise KeyError(key)
1380 
1381         # Check for duplicates

KeyError: 'Date'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...