在我看来,如果性能是重要的用途
issubset
具有
set
:
d = {}
for col2 in df2.columns:
for col1 in df1.columns:
cond = set(df2[col2]).issubset(df1[col1])
if cond:
d[col2] = col1
df2 = df2.rename(columns=d)
print (df2)
SAP_Name SAP_Class
0 Avi 5
1 Rison 6
2 Slesh 7
编辑:
#create dictioanry of Series without dupes
dfs1 = {col1: df1[col1].drop_duplicates() for col1 in df1.columns}
#print (dfs1)
#create dictionary of sets
set2 = {col2: set(df2[col2]) for col2 in df2.columns}
#print (set2)
#loop buy both dictionaries and find columns for rename
d = {}
for col2, v2 in set2.items():
for col1, v1 in dfs1.items():
cond = v2.issubset(v1)
if cond:
d[col2] = col1
df2 = df2.rename(columns=d)
print (df2)
SAP_Name SAP_Class
0 Avi 5
1 Rison 6
2 Slesh 7