Same entry, although only found in one column

Question:

from sepa import parser
import re
import csv
import pandas as pd
import numpy as np


# Utility function to remove additional namespaces from the XML
def strip_namespace(xml):
    return re.sub(' , dd['amount'].str['_value'], '')
        df['Debit'] = np.where(dd['credit_debit_indicator'] == 'DBIT', dd['amount'].str['_value'], '')

        # Get destination IBAN
        getlength = len(dg.index) #2
        
        for i in range(0, getlength):
            result = str(dd['entry_details'][i])
            print(result + "Resultat " + str(i))
            search_for_iban = re.search("CHd{2}[ ]d{4}[ ]d{4}[ ]d{4}[ ]d{4}[ ]d{1}|CHd{19}", result)
            if(search_for_iban is None):
                print('the search is none')
                df['Test'] = 'None'
            else:
                print('the search is a match')
                df['Test'] = 'Yes'

        all_entries.append(df)


df_entries = pd.concat(all_entries)
print(df_entries)

**My problem here is just with this code block **

for i in range(0, getlength):
            result = str(dd['entry_details'][i])
            search_for_iban = re.search("CHd{2}[ ]d{4}[ ]d{4}[ ]d{4}[ ]d{4}[ ]d{1}|CHd{19}", result)
            
            if(search_for_iban is None):
                df['Test'] = 'None'
            else:
                df['Test'] = search_for_iban.group()

        all_entries.append(df)

I have already tried to solve various things via the index, this also counts cleanly high in the variable i and the getlength is also correct for 2 entries

What im expecting
If there is an IBAN number in the ‘search_for_iban’ (which is using regex lookup (re.search)) which is matching in 2nd row i want that iban just in 2nd row (dataframe) "Test" as follows:

what i expect

What im getting
I got double the entry in row 1 and 2 although none was found in row 1. What am i overlooking, my head is hurting! 😀

what i got

i think i am making a thinking error here between normal for loop and panda entries

Asked By: plumped

||

Answers:

You can try:

for i in range(0, getlength):
       .
       .
       .
       else:
          df.loc[i, 'Test'] = search_for_iban
Answered By: Simone