如何将某些分类值从 DataFrame 转换为 python 中的数值(int)?

How to convert certain categorical values from a DataFrame to numerical(int) in python?

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

例如我希望 OldValue 和 NewValue 列中包含“1st Call”的单元格的值为 2,“2nd Call”的值为 3,依此类推...

我 post 我的数据框 Screenshot 这样你就明白我的意思了。

我是编程语言的新手,因此如果您能举一个实际的例子来回答您的问题,那将会有很大的帮助。

您可以使用 replace 并传递一个将每个类别映射到一个数值的字典,然后将新列添加到您的 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}} )