【发布时间】:2020-11-11 01:51:58
【问题描述】:
我有以下 df1:
id period color size rate
1 01 red 12 30
1 02 red 12 30
2 01 blue 12 35
3 03 blue 12 35
4 01 blue 12 35
4 02 blue 12 35
5 01 pink 10 40
6 01 pink 10 40
我需要创建一个索引列,该列基本上是一组颜色大小比率,并计算具有此组合的唯一 ID 的数量。转换后我的输出 df 应该是这样的 df1:
id period color size rate index count
1 01 red 12 30 red-12-30 1
1 02 red 12 30 red-12-30 1
2 01 blue 12 35 blue-12-35 3
2 03 blue 12 35 blue-12-35 3
4 01 blue 12 35 blue-12-35 3
4 02 blue 12 35 blue-12-35 3
5 01 pink 10 40 pink-10-40 2
6 01 pink 10 40 pink-10-40 2
我能够得到计数,但它不计算“唯一”ID,而是计算出现次数。
1 01 red 12 30 red-12-30 2
1 02 red 12 30 red-12-30 2
2 01 blue 12 35 blue-12-35 4
2 03 blue 12 35 blue-12-35 4
4 01 blue 12 35 blue-12-35 4
4 02 blue 12 35 blue-12-35 4
这是错误的,因为它实际上并没有按 id 分组来计算唯一的。
欣赏这个方向的任何指针。
根据我的要求在此处添加编辑: 计数还需要按“句点”分组,即我的最终 df 应该是:
index period count
red-12-30 01 1
red-12-30 02 1
blue-12-35 01 2
blue-12-35 03 1
blue-12-35 02 1
pink-10-40 01 2
解决方案:来自@anky: 当我尝试添加另一个 groupby['period'] 时,出现维度不匹配错误。
提前谢谢你。
【问题讨论】:
-
是的,现在编辑,谢谢@anky
标签: python pandas pandas-groupby