Создание словаря d
и apply
по столбцам:
d =dict(df2[['nodealarmrank1','nodealarm']].values)
df1['antecedent'] = df1['antecedent'].apply(lambda x: list(map(d.get,x)))
df1['consequent'] = df1['consequent'].apply(lambda x: list(map(d.get,x)))
df1
antecedent consequent p
0 [test100] [test1] 1
1 [test3] [test1, test100, test4] 1
Или использовать для цикла и update
:
for column in ['antecedent','consequent']:
df1.update(df1[column].apply(lambda x: list(map(d.get,x))))
for column in ['antecedent','consequent']:
df1[column] = df1[column].apply(lambda x: list(map(d.get,x)))
Настройка
кадр данных 1:
df1 = pd.DataFrame({'antecedent':[[5],[3]],'consequent':[[1],[1, 5, 4,]],'p':[1,1]})
df1
antecedent consequent p
0 [5] [1] 1
1 [3] [1, 5, 4] 1
фрейм данных 2:
df2 = pd.DataFrame({'nodealarm':['test1','test2','test3','test4','test100'],'count1':[110,201,300,600,60],'nodealarmrank1':[1,2,3,4,5]})
df2
nodealarm count1 nodealarmrank1
0 test1 110 1
1 test2 201 2
2 test3 300 3
3 test4 600 4
4 test100 60 5