全部
当前,我的熊猫数据集看起来像下面,我想转换数据框,使其看起来像下面。我的要求如下
当前数据框:
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的新手,如果您能提供出色的代码说明!
答案 0 :(得分: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')