Python 中的类别 Pandas(特例)

Categories in Python with Pandas (special case)

我有一些数据,想建立一些类别。

现在,数据如下所示:

Var     Category
a         cat1
a         cat1
b         cat2
a         cat1
b         cat2
a         cat1

但它应该是这样的:

Var     Category
  a         cat1
  a         cat1
  b         cat2
  a         cat2
  b         cat3
  a         cat3

因此,无论何时 'Var' != 'a' 'Category' 都应该进入下一个类别,依此类推。 我该怎么做?

你可以比较不等于然后累加Series.cumsum,必要时加1,转换成字符串加到cat:

df['Category'] = 'cat' + df.Var.ne('a').cumsum().add(1).astype(str)

选择:

df['Category'] = 'cat' + (df.Var != 'a').cumsum().add(1).astype(str)
print (df)
  Var Category
0   a     cat1
1   a     cat1
2   b     cat2
3   a     cat2
4   b     cat3
5   a     cat3