检查上面行的值,但忽略警告

I would like to check the value of the row above and see it it is the same as the current row. I found a great answer here: df['match'] = df.col1.eq(df.col1.shift()) such that col1 is what you are comparing. However, when I tried it, I received a A value is trying to be set on a copy of a slice from a DataFrame. warning. My col1 is a string. I know you can ignore warnings but how would I check the same row above and make sure that I am not creating a copy of the dataframe? I tried to reproduce the error here with the code below, but I of course I cannot. Even with the warning I do get my desired output, but was curious if there exists a better way.

import pandas as pd
data={'col1':['a','a','a','b','b','c','c','c']}
df=pd.DataFrame(data,columns=['col1'])
df['week']=1
df['check_condition']=1
while sum(df.check_condition) != 0:
    for week in df.week:
        wk = df.loc[df.week == week]
        wk['match'] = wk.col1.eq(wk.col1.shift()) # where the warning occurs
        # fix the repetitive value...which I have not done yet
        # for now just exit out of the while loop
        df.loc[df.week == week,'check_condition'] = 0