Loading...
+ Нов въпрос
Spitfire avatar Spitfire 0 Точки

Data Visualization and EDA Lab Problem 6

Здравейте,

Идеята ми е да разкарам US и от новия dataframe да си дръпна max-a groupby по size за native_country.

 

income_data.native_country[income_data.groupby('native_country').size().max()] 

=> резултат 

'United-States'

new_income_data = income_data[~income_data.native_country.str.contains
                              ('United-States')]

new_income_data.native_country[new_income_data.groupby('native_country').size().max()]

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-337-9414f069507f> in <module>
----> 1 new_income_data.native_country[new_income_data.groupby('native_country').size().max()]

~\Anaconda3\lib\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\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.Int64HashTable.get_item()

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

KeyError: 643

 

Бих бил благодарен за предложения/насоки.

0
Data Science
g.stoyanov avatar g.stoyanov 776 Точки
Best Answer

Привет,

Според мен подхода ти е неправилен, защото ако се подаде друг дейта сет, който въобще няма US или US не е топ, то тогава функцията ти няма да работи! Също така в условието е споменато следното правило: "DO NOT hardcode the answer, e.g. return "Germany"." - погледнато реално ти правиш това, въпреки, че не е точно отговора а е условие участващо в намирането на отговора! Просто трябва да групираш по държавата и да вземеш броят, след което да подредиш по брой и да върнеш втория резултат. Ето и моето решение:

def get_second_highest_num_people(dataframe):
    dataframe = dataframe.groupby("native_country")["native_country"].count()
    dataframe = dataframe.sort_values(ascending=False)
    num_people, country = dataframe[1], dataframe.index[1]
    return num_people, country

 

0
nzihi avatar nzihi 2 Точки

Привет, колега,

и аз я мислих тази задача известно време, но накрая стигнах до работещо решение:

def get_second_highest_num_people(dataframe):
    
    num_people, country = dataframe['native_country'].value_counts()[dataframe['native_country'].value_counts !=                    dataframe['native_country'].mode().any()], dataframe['native_country'].value_counts().keys().tolist()[1]
    
    return num_people, country

0
jbojilova avatar jbojilova 2 Точки

При мен проработи това:

    # returns top 2 from the Series
    top2 = dataframe.groupby("native-country")["native-country"].count().nlargest(2)
    
    # get the 2nd row, t.e. Mexico, 643
    country = top2.index[1]
    num_people = top2.values[1]
 

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