Как преобразовать столбцы в числовые данные? - PullRequest
0 голосов
/ 30 ноября 2018

All,

В настоящее время мой набор данных pandas выглядит следующим образом, и я хотел бы преобразовать свой фрейм данных так, чтобы он выглядел следующим образом.Мои требования ниже

Текущий кадр данных:

 df.tail()
    age   country   females  males  total year
    96   United States 72700  22700  95400  2010
    97    United States 50300  14500  64800  2010
    98    United States 35000   8730   43700 2010
    99    United States 25200   4920   30100 2010
    100    United State 51200    9570   60800  2010

После преобразования: enter image description here

Примечание: Я признаю, что мое необходимое преобразование выполняется в формате JSON, но в основном я хотел бы преобразовать столбцы женщин и мужчин таким образом, чтобы в моем наборе данных можно было создать столбец Gender и присвоить значения1 и 2, а также количество мужчин и женщин в наборе данных .Я новичок в Python, если вы могли бы дать объяснение с кодом, который будет здорово!

1 Ответ

0 голосов
/ 30 ноября 2018

Вы можете немного изменить форму melt, map для полов и to_dict, чтобы получить список словарей.

v = (df.melt(['age', 'country', 'total', 'year'])
       .rename({'variable': 'sex', 'total': 'people'}, axis=1))
v['sex'] = v['sex'].map({'males':1, 'females':2})

data = v.drop('value',1).to_dict('r')

print(data)
[{'age': 96,
  'country': 'United States',
  'people': 95400,
  'sex': 2,
  'year': 2010},
 {'age': 97,
  'country': 'United States',
  'people': 64800,
  'sex': 2,
  'year': 2010},
  ...
]

Вы можете вместо этого хотеть JSON, поэтому используйте

json_data = v.drop('value',1).to_json(orient='records')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...