Pandas数据帧:在具有相同类别的不同现有数据帧上使用相同的类别代码

2024-06-26 00:24:06 发布

您现在位置:Python中文网/ 问答频道 /正文

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

>>> 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_tagsartist_nametrack_name的cat代码与songs数据帧相同。另外song_tags是通过songs和另一个tag数据帧(包含歌曲数据及其标签,不包含用户信息)之间的合并创建的,然后通过pickle保存和加载。另外,我必须将artist_nametrack_nameobject类型转换为category类型,这可能与添加内容有关

Dataframes

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


Tags: the数据代码name类型songartist类别