Mia*_*Mia 9 python list unique pandas
我想计算A列和B列相交的实例数.A列和B列中的行是字符串列表.例如,列A可以包含[汽车,乘客,卡车],列B可以包含[汽车,房屋,花卉,卡车].由于在这种情况下,2个字符串重叠,列C应显示 - > 2
我试过了(这些都没有):
df['unique'] = np.unique(frame[['colA', 'colB']])
Run Code Online (Sandbox Code Playgroud)
要么
def unique(colA, colB):
unique1 = list(set(colA) & set(colB))
return unique1
df['unique'] = df.apply(unique, args=(df['colA'], frame['colB']))
Run Code Online (Sandbox Code Playgroud)
TypeError :('unique()需要2个位置参数,但3个被赋予','发生在索引文章')
jez*_*ael 11
我认为需要length有set.intersection在列表理解:
df['C'] = [len(set(a).intersection(b)) for a, b in zip(df.A, df.B)]
Run Code Online (Sandbox Code Playgroud)
要么:
df['C'] = [len(set(a) & set(b)) for a, b in zip(df.A, df.B)]
Run Code Online (Sandbox Code Playgroud)
样品:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5618 次 |
| 最近记录: |