gpt4 book ai didi

python - 在 Python Pandas 中查找两列的交集 -> 字符串列表

转载 作者:太空狗 更新时间:2023-10-30 00:42:37 25 4
gpt4 key购买 nike

我想计算 A 列和 B 列相交的实例数。A 列和 B 列中的行是字符串列表。例如,A 列可能包含 [car、passenger、truck],B 列可能包含 [car、house、flower、truck]。由于在这种情况下,2 个字符串重叠,C 列应显示 -> 2

我已经尝试过(这些都不起作用):

df['unique'] = np.unique(frame[['colA', 'colB']])

def unique(colA, colB):
unique1 = list(set(colA) & set(colB))
return unique1

df['unique'] = df.apply(unique, args=(df['colA'], frame['colB']))

TypeError: ('unique() 接受 2 个位置参数,但给出了 3 个', '出现在索引文章')

最佳答案

我相信需要 lengthset.intersection在列表理解中:

df['C'] = [len(set(a).intersection(b)) for a, b in zip(df.A, df.B)]

或者:

df['C'] = [len(set(a) & set(b)) for a, b in zip(df.A, df.B)]

示例:

df = pd.DataFrame(data={'A':[['car', 'passenger', 'truck'], ['car', 'truck']],
'B':[['car', 'house', 'flower', 'truck'], ['car', 'house']]})
print (df)
A B
0 [car, passenger, truck] [car, house, flower, truck]
1 [car, truck] [car, house]

df['C'] = [len(set(a).intersection(b)) for a, b in zip(df.A, df.B)]
print (df)
A B C
0 [car, passenger, truck] [car, house, flower, truck] 2
1 [car, truck] [car, house] 1

关于python - 在 Python Pandas 中查找两列的交集 -> 字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49796271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com