在Python中基于列表和字典编写多列代码
我有以下熊猫数据框在Python中基于列表和字典编写多列代码,python,pandas,Python,Pandas,我有以下熊猫数据框 OfferPreference_A OfferPreference_B OfferPreference_C A B A B C C C S G 我在所有列下都有以
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
如何做到这一点。使用:
#if value not match get NaN
df = df[columnlist].applymap(dict1.get)
或:
或:
使用:
或:
或:
假设这些值总是匹配的,您可以使用如下所示的映射
for col in columnlist:
df[col] = df[col].map(dict1)
假设这些值总是匹配的,您可以使用如下所示的映射
for col in columnlist:
df[col] = df[col].map(dict1)
如果值不匹配怎么办?如果值不匹配怎么办?
print (df)
OfferPreference_A OfferPreference_B OfferPreference_C
0 1 2 1
1 2 3 3
2 3 4 5
for col in columnlist:
df[col] = df[col].map(dict1)