首页 > 解决方案 > Pandas Dataframe:在具有相同类别的不同现有数据帧上使用相同的类别代码

问题描述

我有两个熊猫数据框,它们有一些共同的列。这些列属于类别类型,但不幸的是,两个数据帧的类别代码不匹配。例如我有:

>>> df1
     artist          song
0  The Killers   Mr Brightside
1  David Guetta  Memories
2  Estelle       Come Over
3  The Killers   Human


>>> df2  
     artist      date
0  The Killers   2010
1  David Guetta  2012
2  Estelle       2005
3  The Killers   2006

但:

>>> df1['artist'].cat.codes
0           55
1           78
2           93
3           55

然而:

>>> df2['artist'].cat.codes
0           99
1           12
2           23
3           99

我想要的是我的第二个数据框df2采用与第一个相同的类别代码df1而不更改类别值。有没有办法做到这一点?

(编辑)

这是我的两个数据框的屏幕截图。本质上,我希望与数据框具有相同的song_tagscat 代码。同样是从另一个数据框(包含歌曲数据及其标签,没有用户信息)之间的合并创建的,然后通过pickle保存和加载。此外,可能需要补充一点,我必须从type强制转换和输入。artist_nametrack_namesongssong_tagssongstagartist_nametrack_namesong_tagscategoryobject

数据框

我认为基本上我的问题是:如何修改现有数据框列的类别代码?

标签: pythonpandasdataframecategories

解决方案


推荐阅读