Loading...
ParadoX avatar ParadoX 1 Точки

DATA VISUALIZATION. EDA - Lab Problem 7

Здравейте,

Имам проблем с проверката на седма задача от лаба.

Problem 7. Busiest occupations (2 points)

Which people are most overworked? Group all data by occupation and calculate the mean hours per week for each group.

Write a function that calculates and returns all mean hours per week as a Series. Sort the results in descending order (most hours to fewest hours).

Това решението:

def get_mean_working_hours_by_income(dataframe):
    return dataframe.groupby("occupation")["hours_per_week"].mean().sort_values(ascending = False)

А това излиза при изпълнение:

occupation
 Farming-fishing      46.989940
 Exec-managerial      44.987703
 Transport-moving     44.656230
 Protective-serv      42.870570
 Prof-specialty       42.386715
 Craft-repair         42.304221
 Sales                40.781096
 Machine-op-inspct    40.755744
 Armed-Forces         40.666667
 Tech-support         39.432112
 Handlers-cleaners    37.947445
 Adm-clerical         37.558355
 Other-service        34.701669
 Priv-house-serv      32.885906
 ?                    31.906131
Name: hours_per_week, dtype: float64
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~/anaconda3/lib/python3.6/site-packages/pandas/core/indexes/base.py in get_value(self, series, key)
   4380             try:
-> 4381                 return libindex.get_value_box(s, key)
   4382             except IndexError:

pandas/_libs/index.pyx in pandas._libs.index.get_value_box()

pandas/_libs/index.pyx in pandas._libs.index.get_value_at()

pandas/_libs/util.pxd in pandas._libs.util.get_value_at()

pandas/_libs/util.pxd in pandas._libs.util.validate_indexer()

TypeError: 'str' object cannot be interpreted as an integer

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
<ipython-input-31-96210d0cf261> in <module>
      1 hours = get_mean_working_hours_by_income(income_data)
      2 print(hours)
----> 3 nose.tools.assert_almost_equal(hours["Handlers-cleaners"], 37.95, delta = 0.01)

~/anaconda3/lib/python3.6/site-packages/pandas/core/series.py in __getitem__(self, key)
    866         key = com.apply_if_callable(key, self)
    867         try:
--> 868             result = self.index.get_value(self, key)
    869 
    870             if not is_scalar(result):

~/anaconda3/lib/python3.6/site-packages/pandas/core/indexes/base.py in get_value(self, series, key)
   4387                     raise InvalidIndexError(key)
   4388                 else:
-> 4389                     raise e1
   4390             except Exception:  # pragma: no cover
   4391                 raise e1

~/anaconda3/lib/python3.6/site-packages/pandas/core/indexes/base.py in get_value(self, series, key)
   4373         try:
   4374             return self._engine.get_value(s, k,
-> 4375                                           tz=getattr(series.dtype, 'tz', None))
   4376         except KeyError as e1:
   4377             if len(self) > 0 and (self.holds_integer() or self.is_boolean()):

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_value()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_value()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: 'Handlers-cleaners'

Като цяло не мога да разбера къде може да съм сбъркал. Функцията връща:

pandas.core.series.Series

, което изпълнява заданието.

Хистограмата ми излиза правилно.

Някой има ли подобен проблем? Моля за помощ...

Тагове:
0
Data Science 1
ParadoX avatar ParadoX 1 Точки

Открих проблема в интервала, който остава още при четенето. 

Има повече информация в една от предните теми yes

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.