1
好的,我承认,我有麻烦来真正制定一个好的标题。所以我会试着举个例子。将一个数据框分组并计数一个没有显示的列的项目数
这是我的样本数据框:
df = pd.DataFrame([
(1,"a","good"),
(1,"a","good"),
(1,"b","good"),
(1,"c","bad"),
(2,"a","good"),
(2,"b","bad"),
(3,"a","none")], columns=["id", "type", "eval"])
我用它做的是以下几点:
df.groupby(["id", "type"])["id"].agg({'id':'count'})
这导致:
id
id type
1 a 2
b 1
c 1
2 a 1
b 1
3 a 1
这是好的,但什么我稍后需要的是例如该id将在每一行重复。但这不是最重要的部分。
我现在需要的是这样的:所有
id good bad none
id type
1 a 2 2 0 0
b 1 1 0 0
c 1 0 1 0
2 a 1 1 0 0
b 1 0 1 0
3 a 1 0 0 1
更妙会是这样一个结果,因为我需要这个早在数据帧(终于在一个Excel工作表)字段填充。实际上,我将分组更多的专栏。他们也必须完全填充。
id good bad none
id type
1 a 2 2 0 0
1 b 1 1 0 0
1 c 1 0 1 0
2 a 1 1 0 0
2 b 1 0 1 0
3 a 1 0 0 1
谢谢你帮助我。
哇,这个答案是真的我印象深刻。这么快,回答对我来说很重要的一切。非常感谢jezrael! 我的下一个任务是添加C和D之和的另一列,再加上C到E的总和。但我认为,我会自己完成这项工作;-) – SLglider
很高兴能为您提供帮助!将Multiindex写入excel有点麻烦,所以请添加一些图片。 ;) – jezrael
我忘了它,所以把它添加到答案的底部。需要['insert'](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.insert.html),因为需要第一列,但是'reset_index'引发错误,所以需要重命名' id'到'id1'。祝你好运! – jezrael