如何在Python中将某些分类值从DataFrame转换为numeric(int)?

时间:2016-08-08 10:09:50

标签: python dataframe converter

我有一个包含多列和分类数据的数据框,我想为其分配一个数字(int)值,以便继续进行我需要做的数据清理。

e.g。我想要OldValue&列中的单元格。包含“1st Call”的NewValue值为2,“2nd Call”值为3,依此类推......

我发布了Screenshot我的数据框,以便您了解我的意思。

我是编程语言的新手,因此,如果你能为你的答案提供一个实际的例子,那将会有很大的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用replace并传递一个将每个类别映射到数值的dictinary,然后将新列添加到您的DataFrame中:

df['OldValueInt'] = df['OldValue'].replace( {'1st Call attempted': 2, '2nd Call attempted': 3})

示例:

df = pd.DataFrame([['a','x'],['b','x'],['a','y']], columns=['ab','xy'])

df['abInt'] = df['ab'].replace('a': 1, 'b': 2)

print df

产生

  ab xy  abInt
0  a  x      1
1  b  x      2
2  a  y      1

或者如果您想要替换多个列:

df[['ab','xy']] = df.replace( {'ab': {'a': 1, 'b': 2}, 
                               'xy': {'x': 2, 'y': 3}} )