qq_笑_17
df['check']=[list(set(x).intersection(set(y)))\ for x, y in zip(df.UF_med, df.UF_cadastral)] df['count']=df.check.str.len() id UF_med UF_cadastral check count0 1 [SP, SC, PA] [SP, PA] [SP, PA] 21 2 [SP] [SP] [SP] 12 3 [AM, RJ, PA, RS] [AM, RS] [AM, RS] 2或者只是替换list如下len:df['amount']=[len(set(x).intersection(set(y))) for x, y in zip(df.UF_med, df.UF_cadastral)]结果将是:id UF_med UF_cadastral amount0 1 [SP, SC, PA] [SP, PA] 21 2 [SP] [SP] 12 3 [AM, RJ, PA, RS] [AM, RS] 2
元芳怎么了
我不知道你到底想完成什么,但这是我最好的猜测:在两个列表中查找重叠的列表:df = {'id': [1,2,3], 'UF_med':[['SP', 'SC', 'PA'], ['SP'], ['AM', 'RJ', 'PA', 'RS']], 'UF_cadastral': [['SP', 'PA'], ['SP'], ['AM', 'RS']]}output = [item for item in df["UF_med"] if item in df["UF_cadastral"]]#output is [['SP']]在所有列表中查找重叠的字符串:df = {'id': [1,2,3], 'UF_med':[['SP', 'SC', 'PA'], ['SP'], ['AM', 'RJ', 'PA', 'RS']], 'UF_cadastral': [['SP', 'PA'], ['SP'], ['AM', 'RS']]}uf_med = {item for sublist in df["UF_med"] for item in sublist}uf_cadastral = {item for sublist in df["UF_cadastral"] for item in sublist}output = [item for item in uf_med if item in uf_cadastral]#output is ['AM', 'PA', 'RS', 'SP']在相同索引列表中查找重叠的字符串:df = {'id': [1,2,3], 'UF_med':[['SP', 'SC', 'PA'], ['SP'], ['AM', 'RJ', 'PA', 'RS']], 'UF_cadastral': [['SP', 'PA'], ['SP'], ['AM', 'RS']]}output = [{item for item in list1 if item in list2} for list1, list2 in zip(df["UF_med"], df["UF_cadastral"])]#output is [{'PA', 'SP'}, {'SP'}, {'AM', 'RS'}]