将Python pandas DataFrame列值映射到其他值

时间:2020-04-07 20:24:17

标签: python pandas

我有一个带有targets列的数据框,并将它们分配给y

y = df['targets']

0         APPLE
1         APPLE
2        ORANGE
3         APPLE
4         APPLE
         ...  
9995     ORANGE
9996     ORANGE
9997      APPLE
9998     ORANGE
9999     ORANGE
Name: class, Length: 10000, dtype: object

我需要将我的分类特征更改为int,然后构造一个dict,所有分类特征都为key,而int为{{1 }}:

value

如何使用target_mapping = { 'APPLE': 0, 'ORANGE': 1, 'AVACADO': 2 } 函数更改.map中的值?

预期输出应如下:

y

1 个答案:

答案 0 :(得分:1)

一种解决方案:

import pandas as pd

target_mapping = {
    'APPLE': 0,
    'ORANGE': 1,
    'AVOCADO': 2
}
df = pd.DataFrame({"targets": ["APPLE", "ORANGE", "ORANGE", "AVOCADO"]})
df["targets"] = df["targets"].map(lambda x: target_mapping[x])

N.B.1 (我以为是错字)将帖子AVACADO的单词替换为AVOCADO

N.B.2 该解决方案假定target_mapping键与df["target"]中所有可能的值相同