Pandas Groupby Средно

Pandas Groupby Sredno



Когато съберем две или повече стойности заедно и тяхната сума се раздели на общия брой сумирани стойности, резултатът е средна стойност. Pandas Mean връща средната стойност на данните или стойността по дадена ос. Серия със средна стойност по ос ще бъде върната от pandas, ако методът mean() се приложи към рамка с данни. Pandas връща числова стойност (единично число), ако „mean()“ се използва в серия. Функциите могат да се прилагат към категориите след създаване на групи от категории. Това е проста идея, но много ефективна техника, която често се прилага в науката за данни. Това ни позволява да създадем обобщение на данните за всяка група, да приложим специфични за групата модификации и да извършим филтриране на данни. С функцията groupby() обектът може да бъде разделен, може да се приложи функция и след това продуктите могат да се комбинират. С това могат да се групират големи масиви от данни и върху групите могат да се извършват операции.

Как да използвам метода groupby.mean() в Pandas?

За да изчислим средната стойност на рамка от данни или средната стойност на конкретни колони от рамка с данни, можем да използваме функцията groupby.mean(). Ще покажем как да го използваме в следващите примери.







Пример # 01: Определяне на средната стойност на единична цяла колона чрез групиране на данните от една колона

С помощта на функцията pd.DataFrame() първо ще създадем рамка с данни, за да можем да разделим данните от колоната или колоните на рамката с данни на групи и след това да намерим тяхната средна стойност. Преди да създадем рамката с данни, трябва да импортираме модула pandas заедно с библиотеката numpy.





Както може да се види, създадохме нашата рамка с данни, като използвахме речника на pandas. Имаме 3 колони в нашата df рамка с данни, т.е. „артикули“, „производител“ и „количество“. В колоната „артикули“ сме съхранили стойностите („риза“, „вратовръзка“, „панталони“, „риза“, „вратовръзка“, „панталони“, „риза“, „панталони“, „панталони“, „ вратовръзка'), докато  колоните 'производител' и  'количество', съдържащи стойностите ('италия', 'франция', 'китай', 'франция',  'китай', 'италия', 'китай', 'италия', „франция“, „китай“) и (13, 16, 21, 32, 26, 41, 24, 42, 12, 15) съответно. Нека групираме стойностите в колоната на производителя и да определим средната стойност на количеството за всеки отделен производител.





Стойността на производителя „Китай“ има средна стойност на количеството 21,5, средната стойност на количеството за „Франция“ е 20,0, а средната стойност на количеството за „Италия“ е 32,0. Можем също да посочим индекс към изхода, като използваме функцията reset_index с функцията groupby.mean().



Пример # 02: Намиране на средната стойност на една плаваща колона чрез групиране на данните от една колона

Видяхме как можем да намерим средната стойност на колоната с цели числа след групиране на данните. Сега нека опитаме друга колона с тип данни като float. Рамка с данни с поне една колона с плаващи стойности ще бъде създадена с помощта на функцията pd.DataFrame().

Чрез поставянето на речник в pd.DataFrame(), създадохме рамка с данни с три колони. Колоната „име“ съхранява имената на някои произволни играчи („Сам“, „Джей“, „Лео“, „Майк“, „Уил“, „Били“, „Джони“, „Лара“, „Хана“, „Тони“), колоната „отбор“, представляваща отбора, от който принадлежи всеки играч („A“, „A“, „B“,  „A“, „B“, „A“, „C“, „B“ ', 'C', 'C'), а колоната 'height' съхранява височините на всеки играч като плаваща стойност (5.6, 5.4, 6.3, 5.2, 5.5, 6.4, 5.6, 5.8, 6.0, 5.2). Нека групираме данните в колоната „отбор“ и да определим средната стойност на височината за всяка отделна стойност на „отбор“.

Можете да видите, че средната стойност на височината на играчите от отбор А е 5,65, докато средната височина на играчите в отбори B и C е съответно 5,866 и 5,6.

Пример # 03: Определяне на средната стойност на множество колони с помощта на функцията groupby.mean()

В предишните примери ние определихме средната стойност на една колона. Въпреки това, средната стойност на множество колони за всяка група също може да бъде определена. Нека създадем рамка с данни, която има повече от една цифрова колона, след импортиране на модулите pandas и numpy.

В новосъздадената рамка с данни има три колони с етикети „име“, „резултат“ и „съвпадения“. Имената на колоните, съдържащи стойностите на данните като низ („Рон“, „Джим“, „Дани“, „Джим“, „Джим“, „Дани“, „Рон“, „Рон“, „Дани“, „Джим“ ), докато „резултатът“ и „съвпаденията“ се състоят от цифрови данни като (3, 4, 2, 4, 1, 5, 2, 3, 1, 2) и (2, 3, 1, 2, 1, 3 , 4, 1, 2, 1). Сега нека намерим средната стойност на колона „резултат“ и „съвпадения“ след групиране на данните от колона „име“. За това ще се използва функцията groupby.mean().

Може да се забележи, че група „Dany“ има среден резултат от 2.66 за 2.00 мача. Групата Jim има среден резултат от 2.75, а средната стойност на изиграните мачове е 1.75. Докато групата „Рон“ има средна стойност на резултата от 2,66, а средната стойност на изиграните мачове е 2,33.

Средната стойност на група категории по обект може също да се изчисли с помощта на метода agg(). Ще предоставим средната стойност като аргумент на функцията agg(). За да агрегираме с помощта на единични или множество операции по дадена ос, можем да използваме функцията agg().

Резултатът е същият като преди.

Пример # 04: Определяне на средната стойност на конкретни колони чрез групиране на множество колони

В примери 1, 2 и 3 сме групирали стойностите или данните на една колона. Сега ще групираме няколко колони, като използваме списъка с етикети на колони във функцията groupby() и след това ще намерим средната стойност за всяка група. Речник „d“ ще бъде подаден във функцията pd.Dataframe() като вход за създаване на рамката с данни.

Създадохме необходимата рамка с данни. Колоната 'спорт' съхранява името на някои спортове ('Бадминтон', 'футбол', 'тенис', 'баскетбол', 'футбол', 'тенис', 'баскетбол', 'футбол', 'Бадминтон', ' баскетбол', 'баскетбол', 'тенис'), имената на държавите ('Китай', 'Русия', 'Италия', 'Испания', 'Русия', 'Италия', 'Китай', 'Италия', ' Испания', 'Китай', 'Русия', 'Италия') се съхраняват в колоната 'държава'. Докато в колоната „победа“ сме съхранили броя на спечелените мачове от всяка държава във всеки спорт (13, 10, 6, 7, 10, 12, 7, 11, 8, 13, 11, 6). Нека използваме функцията groupby.mean(), за да намерим средната стойност на стойностите на колоната „win“ чрез групиране на колоните „sports“ и „country“.

Функцията успешно е определила средните стойности на стойностите в колона „победа“ за всеки спорт в страната. Групираният по кадър с данни може да бъде нулиран с помощта на функцията reset_index(), която също генерира нов индекс, давайки му подходяща структура на кадър с данни.

Добавя се индекс за всеки ред на рамка с данни. За да подредим резултатите в атрактивна таблица, можем да използваме и функцията pivot().

Заключение

В този урок обсъдихме какво представлява средната или средната стойност на числата и как да намерите средната стойност на конкретна колона (една или повече) след групиране на колоната или колоните на рамка с данни. Внедрихме няколко примера в тази статия, за да ви научим как да определяте средната стойност на едно цяло число или колона с плаваща задна буква чрез групиране на данните от една колона; как да се определи средната стойност на множество колони с помощта на функцията groupby.mean(); и също как да се определи средната стойност на конкретни колони чрез групиране на множество колони.