我有一个包含多列和分类数据的数据框,我想为其分配一个数字(int)值,以便继续进行我需要做的数据清理。
e.g。我想要OldValue&列中的单元格。包含“1st Call”的NewValue值为2,“2nd Call”值为3,依此类推......
我发布了Screenshot我的数据框,以便您了解我的意思。
我是编程语言的新手,因此,如果你能为你的答案提供一个实际的例子,那将会有很大的帮助。
答案 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}} )