在Pandas数据框中将连续数据转换为分类数据

时间:2018-11-27 02:15:44

标签: python pandas numeric categorical-data continuous

全部

我有下面的数据集,我想在我的数据框中添加一列,这将代表/反映如下分类数据中的结果。

当前数据集enter image description here

添加新列后enter image description here

请提供解决方法的建议。如果您可以提供解释,那我是pyton的新手!

2 个答案:

答案 0 :(得分:2)

您可以在创建map之后使用dict,但让我们尝试一些新的东西

pd.cut(df.Seasons,4,labels=['Winter','Spring','Summer','Fall'])
Out[262]: 
0    Winter
1    Spring
2    Summer
3      Fall
4    Summer
dtype: category
Categories (4, object): [Winter < Spring < Summer < Fall]

确定使用地图

d=dict(zip([1,2,3,4],['Winter', 'Spring', 'Summer', 'Fall']))
df.Seasons.map(d)
Out[265]: 
0    Winter
1    Spring
2    Summer
3      Fall
4    Summer
dtype: object

答案 1 :(得分:0)

一种解决方案:

  

data.csv

Age,Population,Seasons
20,100,1
30,340,2
35,45,3
40,90,4
45,9,3
  

test.py

#!/bin/python

import pandas as pd

df = pd.read_csv('data.csv')

seasons = ['Winter', 'Spring', 'Summer', 'Fall']

df['Seas_Fact'] = [seasons[x-1] for x in df['Seasons']]

print(df)

输出:

   Age  Population  Seasons Seas_Fact
0   20         100        1    Winter
1   30         340        2    Spring
2   35          45        3    Summer
3   40          90        4      Fall
4   45           9        3    Summer