I have a Pandas DataFrame with a column containing a list of integers.

I want to map different values onto this list of integers and am encountering several problems.

Here is what I currently have (with a test dataset):

```
data = [["Item_1", [0, 3, 4]], ["Item_2", [22, 4, 5]], ["Item_3", [0, 4, 5]]]

df = pd.DataFrame(data, columns=["Item_ID", "Values"])

# Convert to string
df["Values"] = [str(x) for x in df["Values"]]

# Find and Replace:
def replace_vals(x):

    replace_dict = {
        **{
            r"\b1\b": "A",
            r"\b12\b": "B",
            r"\b3\b": "C",
            r"\b4\b": "D",
            r"\b5\b": "E",
            r"\b22\b": "G",
        },
    }
    for pattern, replacer in replace_dict.items():
        if re.search(pattern, x, re.IGNORECASE):
            return replacer
    return x

df["corrected_vals"] = df["Values"].apply(replace_vals)

```

The rub is I want all of the values in the list to be replaced not just the first one encountered.

Is there a way to do this search and replace, or mapping in such a way that each element of the list is replaced?

Currently this is my input:

```
Item ID  Values
Item_1   [0,3,4]
Item_2   [22,4,5]
Item_3   [0,4,5]

```

And this is my output:

```
Item ID  Values    Corrected_vals
Item_1   [0,3,4]      C   
Item_2   [22,4,5]     D
Item_3   [0,4,5]      D

```

My *ideal* output is this:

```
Item ID  Values    Corrected_vals
Item_1   [0,3,4]      [C,D]   
Item_2   [22,4,5]     [D,E,G]
Item_3   [0,4,5]      [D,E]

```

Where each list element that has a pattern in the dictionary is replaced.

Thank you for any and all help!