我认为这在文档中并不十分明显,但是您可以执行以下 *** 作。以下是一些示例数据:
df1=pd.Dataframe({'x':pd.Categorical(['dog','cat'])})df2=pd.Dataframe({'x':pd.Categorical(['cat','rat'])})
使用
union_categoricals1得到一致的类别accros
dataframes。
df.x.cat.pres如果您需要使自己确信这可行,请尝试。
from pandas.api.types import union_categoricalsuc = union_categoricals([df1.x,df2.x])df1.x = pd.Categorical( df1.x, categories=uc.categories )df2.x = pd.Categorical( df2.x, categories=uc.categories )
连接并确认dtype是类别的。
df3 = pd.concat([df1,df2])df3.x.dtypescategory
正如@
C8H10N4O2所建议的那样,您还可以在连接后将对象强制转换回类别。老实说,对于较小的数据集,我认为这是最好的方法,因为它更简单。但是对于较大的数据帧,使用
union_categoricals应该具有更高的内存效率。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)