慕婉清6462132
如果您比较具有相同多个字符的名称,例如,其他解决方案将失败。AAL0和AAL0X24。这里的结果应该是 4。from collections import Counterdf = pd.DataFrame(data=[["AL0","CP1","NM3","PK9","RM2", "AAL0"], ["AL0X24", "CXP44", "MLN", "KKRR9", "22MMRRS", "AAL0X24"]]).Tdef num_shared_chars(char_counter1, char_counter2): shared_chars = set(char_counter1.keys()).intersection(char_counter2.keys()) return sum([min(char_counter1[k], char_counter2[k]) for k in shared_chars])df_counter = df.applymap(Counter)df['shared_chars'] = df_counter.apply(lambda row: num_shared_chars(row[0], row[1]), axis = 'columns')结果: 0 1 shared_chars0 AL0 AL0X24 31 CP1 CXP44 22 NM3 MLN 23 PK9 KKRR9 24 RM2 22MMRRS 35 AAL0 AAL0X24 4