我在熊猫中有以下数据框
OfferPreference_A OfferPreference_B OfferPreference_C
A B A
B C C
C S G
我在所有列下都有以下唯一值的字典
dict1={A:1, B:2, C:3, S:4, G:5, D:6}
我也有一个列名列表
columnlist=['OfferPreference_A', 'OfferPreference_B', 'OfferPreference_C']
我正在尝试获取下表作为输出
OfferPreference_A OfferPreference_B OfferPreference_C
1 2 1
2 3 3
3 4 5
我该怎么做。
答案 0 :(得分:3)
使用:
#if value not match get NaN
df = df[columnlist].applymap(dict1.get)
或者:
#if value not match get original value
df = df[columnlist].replace(dict1)
或者:
#if value not match get NaN
df = df[columnlist].stack().map(dict1).unstack()
print (df)
OfferPreference_A OfferPreference_B OfferPreference_C
0 1 2 1
1 2 3 3
2 3 4 5
答案 1 :(得分:1)
您可以使用map
,如下所示,假设值始终匹配
for col in columnlist:
df[col] = df[col].map(dict1)