簡體   English   中英

如何檢查數組列表中的數組 - Python

[英]How can I check the arrays in an array list - 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)

如您所見,最后一個數組的第二個值為空。

我想要的是檢查每個數組的第二個值是否為空。 如果是,我想從具有第二個空值的數組中返回兩個值。

知道我該怎么做嗎?

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

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

使用布爾掩碼過濾您的行:

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', '']]

使用列表理解:

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

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

干得好:

your_list = [['AIGSALPPMM', 'AVIVANVS'], ['DKEPBARCLA', 'DAVIDSNKC'], ['DAVKEMBDBL', 'DAVIDSNKC'], ['DAKEMJPMPB', '']]
new_list = [[val[0], val[0]] if val[-1]=='' else val for val in your_list] 
new_list

如果我誤解了你的問題,請糾正我

暫無
暫無

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

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