将计数添加到新列熊猫蟒蛇 3



我正在尝试删除重复的行并使用pandas写入出现的次数。以下陈述是我尝试过的:

createModel['count'] = createModel.groupby(createModel.columns.tolist(),as_index=False).size()
createModel.to_csv(r"test1.csv",index=False,header =True,sep="t",encoding="utf-16")
createModel.head(10)

但是我得到错误:TypeError: incompatible index of inserted column with frame index

我知道这是因为我添加了count.如果我删除它然后尝试保存文件,我只能保护count

请告诉我如何保存完整的数据帧,没有重复项,并添加一列作为count表示该行出现的次数

使用transform作为新列,但必须在[]groupby后添加一个列值:

cols = createModel.columns.tolist()
#another solution, thanks @jpp
#cols = list(createModel)
createModel['count'] = createModel.groupby(cols)[cols[0]].transform('size')

如果需要删除重复的值需要聚合值并添加reset_index

createModel = createModel.groupby(cols).size().reset_index(name='count')

最新更新