通过熊猫将数据添加到某些单元格的循环

时间:2020-10-27 14:13:16

标签: python pandas csv

我是熊猫的新手,我不太想知道出了什么问题。

我有两个数据框:第一个是item.csv,具有列“ item id”,“ rate_M”,“ num_M”,“ rate_F”和“ num_F” /第二个是data.csv,具有列“ user” id”,“ item id”,“ rating”和“ gender”。 sample picture of item.csv sample picture of data.csv

使用这两个数据帧,我想做一个循环,以便它遍历data.csv中的行,

  1. 它将“ rating”列中的值添加到item.csv中,其中行具有相同的“ item id”,并根据“ gender”列中包含“ rate_M”或“ rate_F”列
  2. 它向item.csv加1,并根据“性别”列添加相同的“ item id”和“ num_M”或“ num_F”行
data = pd.read_csv("data.csv")
item = pd.read_csv("item.csv")

for index, row in data.iterrows():
    if row["gender"] == 'M':
        item.at[row["item id"], "rate_M"] += row["rating"]
        item.at[row["item id"], "num_M"] += 1
    if row["gender"] == 'F':
        item.at[row["item id"], "rate_F"] += row["rating"]
        item.at[row["item id"], "num_F"] += 1
        
item.to_csv("item2.csv", index=False)

但是,当我在命令提示符下运行此命令时,它返回 ValueError:1682不在范围内error 谁能告诉我哪里出了问题以及我该如何编码,以使其真正执行我想要的工作?

0 个答案:

没有答案