Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中带熊猫的类别(特例)_Python_Pandas_Dataframe_Categories - Fatal编程技术网

Python中带熊猫的类别(特例)

Python中带熊猫的类别(特例),python,pandas,dataframe,categories,Python,Pandas,Dataframe,Categories,我有一些数据,想建立一些类别 现在,数据如下所示: 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 ca

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

现在,数据如下所示:

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     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”!='“类别”应移到下一个类别,依此类推。
我怎样才能做到这一点?

您可以比较是否不相等,然后通过添加累计和,必要时添加
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

您可以比较是否不相等,然后通过添加累积和,必要时添加
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