如何将列转换为数值数据?

How to convert columns into Numerical data?

全部,

目前我的 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 的新手,如果你能提供解释代码会很棒!

您可以对性别进行 meltmap 和 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')