如何检查数组列表中的数组

2024-06-28 19:13:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数组列表,每个数组有两个值,它们对应于excel的两列。我想知道如何检查每个数组的第二个值

这是结构

[['AIGSALPPMM', 'AVIVANVS'], ['DKEPBARCLA', 'DAVIDSNKC'], ['DAVKEMBDBL', 'DAVIDSNKC'], ['DAKEMJPMPB', '']]

使用这段代码,我从表中检索值,并创建一个列表,该列表返回几个数组,其中包含我需要检查的这两列的值

#Read the excel and convert to list

df = pd.read_excel('check_counterparties.xlsx', sheet_name = 'counterparties_cdwu', usecols = "A,B", skiprows=4)
dataList =  df.values.tolist()

#    print(dataList)

如您所见,最后一个数组的第二个值为空

我想检查每个数组的第二个值是否为空。如果是,我想从这个数组返回第二个空值的两个值

你知道我怎么做吗


Tags: 代码df列表read数组结构exceldatalist
3条回答

使用布尔掩码筛选行:

df = pd.read_excel('check_counterparties.xlsx', sheet_name='counterparties_cdwu',
                   usecols=['A', 'B'], skiprows=4)

out = df[df['B'] == '']

输出:

# DataFrame format
>>> out
            A B
3  DAKEMJPMPB  

# List format
>>> out.to_dict(orient='split')['data']
[['DAKEMJPMPB', '']]
main_arr = [['AIGSALPPMM', 'AVIVANVS'], ['DKEPBARCLA', 'DAVIDSNKC'], ['DAVKEMBDBL', 'DAVIDSNKC'], ['DAKEMJPMPB', '']]

for arr in main_arr:
    if arr[1] == '':
       print (arr)

使用列表理解:

lst = [['AIGSALPPMM', 'AVIVANVS'], ['DKEPBARCLA', 'DAVIDSNKC'], ['DAVKEMBDBL', 'DAVIDSNKC'], ['DAKEMJPMPB', '']]

>>> [sublist for sublist in lst if len(sublist[-1].strip())==0]
[['DAKEMJPMPB', '']]

相关问题 更多 >