通过重命名合并 pandas 个分类系列
Merging pandas categorical Series with renaming
我正在寻找一种方法将 pandas.Series
的一个对象的类别合并到另一个对象的类别。
import pandas as pd
from pandas import Series, Categorical
N = Series(["a","b","c","a"], dtype="category", name = "NEW_TEST")
N1 = N.copy()
N2 = N.copy()
有效
N1.cat.categories = ['AA', 'BB', 'CC']
抛出错误 ValueError: Categorical categories must be unique
N2.cat.categories = ['AA', 'AA', 'CC']
我想重命名合并类别。因此,来自类别 b
的所有值最终将归入类别 AA
.
一种方法是将类别分配给您要重命名的类别系列中的所有元素:
In [59]: N
Out[59]:
0 a
1 b
2 c
3 a
Name: NEW_TEST, dtype: category
Categories (3, object): [a < b < c]
In [60]: N[N=='b'] = 'a'
In [61]: N
Out[61]:
0 a
1 a
2 c
3 a
Name: NEW_TEST, dtype: category
Categories (3, object): [a < b < c]
现在,类别 'b' 的所有元素都分配了类别 'a'。如果您现在删除类别 'b',实际上这将以 'merge' 结束:
In [62]: N.cat.remove_unused_categories()
Out[62]:
0 a
1 a
2 c
3 a
dtype: category
Categories (2, object): [a < c]
In [63]: N.cat.remove_categories(['b'])
Out[63]:
0 a
1 a
2 c
3 a
dtype: category
Categories (2, object): [a < c]
我正在寻找一种方法将 pandas.Series
的一个对象的类别合并到另一个对象的类别。
import pandas as pd
from pandas import Series, Categorical
N = Series(["a","b","c","a"], dtype="category", name = "NEW_TEST")
N1 = N.copy()
N2 = N.copy()
有效
N1.cat.categories = ['AA', 'BB', 'CC']
抛出错误 ValueError: Categorical categories must be unique
N2.cat.categories = ['AA', 'AA', 'CC']
我想重命名合并类别。因此,来自类别 b
的所有值最终将归入类别 AA
.
一种方法是将类别分配给您要重命名的类别系列中的所有元素:
In [59]: N
Out[59]:
0 a
1 b
2 c
3 a
Name: NEW_TEST, dtype: category
Categories (3, object): [a < b < c]
In [60]: N[N=='b'] = 'a'
In [61]: N
Out[61]:
0 a
1 a
2 c
3 a
Name: NEW_TEST, dtype: category
Categories (3, object): [a < b < c]
现在,类别 'b' 的所有元素都分配了类别 'a'。如果您现在删除类别 'b',实际上这将以 'merge' 结束:
In [62]: N.cat.remove_unused_categories()
Out[62]:
0 a
1 a
2 c
3 a
dtype: category
Categories (2, object): [a < c]
In [63]: N.cat.remove_categories(['b'])
Out[63]:
0 a
1 a
2 c
3 a
dtype: category
Categories (2, object): [a < c]