Как отсортировать данные с помощью функции groupby в python? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть проблемы, связанные с сортировкой данных в группах.У меня есть данные о средней заработной плате по девяти различным профессиям, сгруппированным по SEX и стране («GEO»).Я хотел бы иметь таблицу данных, в которой профессии назначены для каждой страны и SEX после средней заработной платы.Так что у меня для каждой страны и SEX 9 профессий упорядочены по стоимости.Вот что у меня есть:

df

  wage   Country SEX  OCCUPATION
0   6   BELGIUM  M    Elementary
1   4   BELGIUM  M    POLICE 
2   6   BELGIUM  M    MANAGERS
3   8   BELGIUM  M    PROFESSIONALS
2   6   BELGIUM  F    PROFESSOIONALS     
3   8   BELGIUM  F    MANAGERS
4   7   BELGIUM  F    POLICE
5   5   FRANCE   M    POLICE
6   3   FRANCE   M    PROFESSIONALS
7   2   FRANCE   M    MANAGERS

Но мне хотелось бы иметь это:

  wage   Country SEX  OCCUPATION
1   4   BELGIUM  M    POLICE 
0   6   BELGIUM  M    Elementary
2   6   BELGIUM  M    MANAGERS
3   8   BELGIUM  M    PROFESSIONALS
2   6   BELGIUM  F    PROFESSOIONALS     
4   7   BELGIUM  F    POLICE
3   8   BELGIUM  F    MANAGERS
7   2   FRANCE   M    MANAGERS
6   3   FRANCE   M    PROFESSIONALS
5   5   FRANCE   M    POLICE

В конце концов, если возможно, я бы хотел присвоить число от 1: номер занятияв порядке заработной платы.Для иллюстрации:

  wage   Country SEX  OCCUPATION     ORDER
1   4   BELGIUM  M    POLICE            1
0   6   BELGIUM  M    Elementary        2
2   6   BELGIUM  M    MANAGERS          3
3   8   BELGIUM  M    PROFESSIONALS     4
2   6   BELGIUM  F    PROFESSOIONALS    1
4   7   BELGIUM  F    POLICE            2
3   8   BELGIUM  F    MANAGERS          3
7   2   FRANCE   M    MANAGERS          1
6   3   FRANCE   M    PROFESSIONALS     2
5   5   FRANCE   M    POLICE            3

Этот вопрос относится к: группам панд по группам .Я прочитал это, и это не сработало: то, что я пытался достичь желаемого значения df:

df=df.sort_values(["Country","SEX","wage"],ascending=False).groupby(["Country","SEX"])

К сожалению, python возвращает это вместо фрейма данных:

<pandas.core.groupby.groupby.DataFrameGroupBy object at 0x0000022CC92DC668>

"GEO","SEX","occ", are all objects
obs_value is a float.
the df is a dataframe

Я был бы признателенесли кто-то может помочь мне

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