我尝试在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 += 1
pre_date = rows["Date"]
if date_counter > 7:
date_counter = 1
epic_week += 1
rows["epic_week"] = epic_week发布于 2020-09-18 01:51:16
在这里查看第二个注释:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iterrows.html。您正在迭代您的数据帧,所以您不应该在迭代它时尝试修改它。
您可以尝试创建df的副本并在更新原始副本的同时迭代该副本,或者在循环中保存要添加到数据结构中的更改,然后在迭代完成后将其添加到df中。
发布于 2020-09-18 01:53:35
尝试这样做,更改最后一行,如下所示
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 workhttps://stackoverflow.com/questions/63942749
复制相似问题