агрегирование и индексация на основе указанного c столбца в pandas - PullRequest
0 голосов
/ 26 мая 2020

У меня есть файл csv, связанный с данными о счастье в мире по странам. В этом файле данных различные оценки, связанные с счастьем, рассчитываются на основе некоторых конкретных критериев c. я хочу найти худшие и лучшие страны по этим критериям (характеристикам). Мое решение приведено ниже с изображениями ноутбука:

happiness_df = pd.read_csv('Datasets/happiness_2017.csv')
happiness_data_by_country = {}
for column in happiness_df.describe().columns:
    if column != 'Rank':       
        max_val = happiness_df.describe().loc['max',column]
        min_val = happiness_df.describe().loc['min',column]
        country_with_max = happiness_df.loc[happiness_df[column]==max_val,'Country'].values[0]
        country_with_min = happiness_df.loc[happiness_df[column]==min_val,'Country'].values[0]
        happiness_data_by_country[column] = {
        "worst" : country_with_min,
        "best" : country_with_max 
    }

dataframe

мое решение

есть ли лучший способ сделать это в pandas?

1 Ответ

0 голосов
/ 26 мая 2020

Да, для максимального значения вы можете попробовать:

df.loc [df ['HappinessScore']. Idxmax ()]

И для минимального: df.loc [df ['HappinessScore']. Idxmin ()]. ​​

...