gpt4 book ai didi

Python - 统计一个列表与多个列表完全匹配的次数

转载 作者:太空宇宙 更新时间:2023-11-04 09:36:22 25 4
gpt4 key购买 nike

首先,我有一个 excel 文件(或 csv 文件),我已将其转换为数据框 (df)。

接下来,第一列中有一个字符串主列表,其中包含字母数字字符。

然后,后续列中有字符串列表,可以是相同长度(list1)、较短(list2)或较长(list3) )。

我想计数(或求和)master_list 和其他列表之间完全匹配的数目。


# Assign spreadsheet filename to `file`
file = "list_match.xlsx"

# Load spreadsheet
import pandas as pd
df = pd.read_excel(file)

print (df)
master_list list1 list2 list3
abc abc abc stu
def xxx def zzz
ghi xxx yyy zzz
jkl xxx yyy zzz
mno1 xxx yz1 zzz
pqr xxx zzz
stu xxx zzz
vwx xxx zzz
yz1 xxx zzz
yz2 xx1 zzz
yz3 xx1 zzz
zzz
mno1
zzz

目标是创造这样的结果:

List     Count
list1 1
list2 3
list3 2

结果说明:

  • list1 中有一个匹配项:'abc'
  • list2中匹配了三个:'abc', 'def', 'yz1'
  • list3中有两个匹配项:'stu', 'mno1'

我的问题类似于this question , 除了数据被转置并且有多个列表要比较可能需要循环。

最佳答案

与:

   master_list list1 list2 list3
0 abc abc abc stu
1 def xxx def zzz
2 ghi xxx yyy zzz
3 jkl xxx yyy zzz
4 mno1 xxx yz1 zzz
5 pqr xxx NaN zzz
6 stu xxx NaN zzz
7 vwx xxx NaN zzz
8 yz1 xxx NaN zzz
9 yz2 xx1 NaN zzz
10 yz3 xx1 NaN zzz
11 NaN NaN NaN zzz
12 NaN NaN NaN mno1
13 NaN NaN NaN zzz

使用df.applynp.isin :

df.apply(lambda col:np.isin(col,df.master_list).sum())
and

df.isin:

df.isin(df.master_list.dropna().tolist()).sum()

结果:

master_list    11
list1 1
list2 3
list3 2
dtype: int64

关于Python - 统计一个列表与多个列表完全匹配的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53574680/

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