如何将列转换为数值数据?
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 的新手,如果你能提供解释代码会很棒!
您可以对性别进行 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 数据集如下所示,我想转换我的数据框,使其如下所示。我的要求如下
当前数据帧:
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 的新手,如果你能提供解释代码会很棒!
您可以对性别进行 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')