I have the following information.
Let’s say I have the following list.
my_list = [2,3,4,5]
My dataframe is as follows:
df
Col1 Value [1,3,6] Hot [7] Mild [10,11,2] Cool [5,9] Cool [2,5,6] Mild
I would like to check if one of the value from the list my_list
exist in the column Col1
. If it exist, change the value in Value
column to Hot
in the corresponding row.
I would like to see something like below.
Col1 Value [1,3,6] Hot [7] Mild [10,11,2] Cool [5,9] Hot [2,5,6] Hot
I am just looking for a simple script that can iterate and check in every row and change a value in another column the corresponding row.
Can any one help on this?
Advertisement
Answer
You can use a combination of explode
, isin
, agg
, and .loc
:
df.loc[df['Col1'].explode().isin(my_list).groupby(level=0).any(), 'Value'] = 'Hot'
Output:
>>> df Col1 Value 0 [1, 3, 6] Hot 1 [7] Mild 2 [10, 11, 2] Hot 3 [5, 9] Hot 4 [2, 5, 6] Hot