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?
CodePudding user response:
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