【问题标题】:How to convert columns into Numerical data?如何将列转换为数值数据?
【发布时间】:2018-11-30 02:58:12
【问题描述】:

全部,

目前我的 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()而不是图片来给我们看数据吗
  • @W-B.. 请查看更新后的问题

标签: python pandas data-conversion


【解决方案1】:

您可以对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')

【讨论】:

  • 谢谢!但我想将我的数据保存在 pandas 数据框中
  • @biggboss2019 花一点时间,请阅读代码,了解它的作用,然后删除最后的.to_dict('r') 部分。
  • 对不起!我很着急。但我确实意识到 v 在 Pandas 数据框中
猜你喜欢
  • 2014-07-06
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 2018-02-04
  • 2020-04-19
  • 1970-01-01
  • 2021-07-17
  • 1970-01-01
相关资源
最近更新 更多