簡體   English   中英

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

[英]Find intersection of two columns in Python Pandas -> list of strings

我想計算A列和B列相交的實例數。 A列和B列中的行是字符串列表。 例如,列A可以包含[汽車,乘客,卡車],列B可以包含[汽車,房屋,花卉,卡車]。 由於在這種情況下,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個被賦予','發生在索引文章')

我相信在列表理解中需要set.intersection length

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM