Python 为什么;行[“epic”周]=epic周;不起作用?

Python 为什么;行[“epic”周]=epic周;不起作用?,python,pandas,Python,Pandas,我尝试向数据帧添加一个新列。当我想使用iterrows()函数更新时,“rows[“epic_week”]=epic_week”不起作用 date_counter = 5 pre_date = df.Date[0] epic_week = 9 df["epic_week"] = 0 for index, rows in df.iterrows(): if rows["Date"] != pre_date: date_counter

我尝试向数据帧添加一个新列。当我想使用iterrows()函数更新时,“rows[“epic_week”]=epic_week”不起作用

date_counter = 5
pre_date = df.Date[0]
epic_week = 9
df["epic_week"] = 0
for index, rows in df.iterrows():
    if rows["Date"] != pre_date:
        date_counter += 1
        pre_date = rows["Date"]
        if date_counter > 7:
            date_counter = 1
            epic_week += 1
        rows["epic_week"] = epic_week

请在此处查看第二个注释:。您正在对数据帧进行迭代,因此在迭代时不应尝试对其进行修改


您可以尝试创建df的副本,并在更新原始副本时对副本进行迭代,或者在循环中保存要添加到数据结构中的更改,然后在迭代完成后将其添加到df中。

尝试此操作,更改最后一行,如下所示

date_counter = 5
pre_date = df.Date[0]
epic_week = 9
df["epic_week"] = 0
for index, rows in df.iterrows():
    if rows["Date"] != pre_date:
        date_counter += 1
        pre_date = rows["Date"]
        if date_counter > 7:
            date_counter = 1
            epic_week += 1
        rows.at[index, "epic_week"] = epic_week # This will work

请尝试
df.loc[index,“epic_week”]=epic_week
非常感谢!