Как преобразовать столбцы в числовые данные?

Все,

В настоящее время мой набор данных 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

После преобразования:Как преобразовать столбцы в числовые данные?

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

Можете ли вы показать нам данные, используя df.head (), а не картинку?

BENY 30.11.2018 04:00

@ W-B .. см. Обновленный вопрос

biggboss2019 30.11.2018 04:07
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
39
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете немного изменить форматы 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')

Спасибо! но я хотел бы сохранить свои данные в фреймворке pandas

biggboss2019 30.11.2018 04:11

@ biggboss2019 Подождите минутку, прочтите код, поймите, что он делает, а затем удалите часть .to_dict('r') в конце.

cs95 30.11.2018 04:12

Прости! Я был в спешке. Но я понял, что v находится в фрейме данных Pandas

biggboss2019 30.11.2018 04:17

Другие вопросы по теме