在数据帧级联时保留类别dtype

在数据帧级联时保留类别dtype,第1张

数据帧级联时保留类别dtype

我认为这在文档中并不十分明显,但是您可以执行以下 *** 作。以下是一些示例数据:

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
应该具有更高的内存效率。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5667143.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存