Python 为什么;行[“epic”周]=epic周;不起作用?
我尝试向数据帧添加一个新列。当我想使用iterrows()函数更新时,“rows[“epic_week”]=epic_week”不起作用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
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
非常感谢!