Python 如何使用pandas对一系列值进行编码

Python 如何使用pandas对一系列值进行编码,python,pandas,indexing,Python,Pandas,Indexing,我有一个熊猫数据框和一个列age。我想把它编码成由特定范围分隔的分类值,例如,15岁以下的年龄应该是0,15到30岁之间的年龄应该改为1等等 我找到了这样做的方法(在经历了关于&和和使用的巨大困惑之后) age=X.loc[:,'age'] 年龄[年龄您可以使用: 感谢您,它正在工作,但有此警告。我尝试将df['Bins']更改为df.iloc[:,'Bins']但再次,我似乎收到了相同的警告。我是否应该关注此问题?设置WithCopyWarning:试图在数据帧的切片副本上设置值。请尝试使用.

我有一个熊猫数据框和一个列
age
。我想把它编码成由特定范围分隔的分类值,例如,15岁以下的年龄应该是0,15到30岁之间的年龄应该改为1等等

我找到了这样做的方法(在经历了关于
&
使用的巨大困惑之后)

age=X.loc[:,'age']
年龄[年龄您可以使用:


感谢您,它正在工作,但有此警告。我尝试将
df['Bins']
更改为
df.iloc[:,'Bins']
但再次,我似乎收到了相同的警告。我是否应该关注此问题?
设置WithCopyWarning:试图在数据帧的切片副本上设置值。请尝试使用.loc[行索引器,列索引器]=改为value
我觉得以前的代码有问题,希望能帮上忙
age = X.loc[:, 'Age']

age[ age<15 ] = 0
age[ (15<age) & (age<=30) ] = 1
age[ (30<age) & (age<=50) ] = 2
age[ (50<age) & (age<=80) ] = 3
df = pd.DataFrame({'Age':[0,1,14,15,30,31,50,51,79,80]})

bins = [0,14,30,50,80]
labels=[0,1,2,3]
df['bins'] = pd.cut(df['Age'], bins=bins, labels=labels, include_lowest=True)
print (df)
   Age bins
0    0    0
1    1    0
2   14    0
3   15    1
4   30    1
5   31    2
6   50    2
7   51    3
8   79    3
9   80    3