pandas 如何将字符串映射为数字

再看那柔弱的柳树吧,在寒冬余威尚盛时节,就早早苏醒过来,望着冰冻的河面,迎着凛冽的寒风,它微微察觉出一丝春意,于是,不顾一切地率先吐翠,淡淡地披起娇黄嫩绿的新装。沿河望去,枝梢间烟纱雾彀,一片生机,这情景仿佛一首动人的歌,一首热烈向往春天的歌,一首报告春的信息的歌,一首表达美好信念的歌。我在想:既然迎春花被人称作报春花,那么,柳树可不可以叫作报春树呢春来了,万千柳枝在春风中袅袅舞动。柳树是热爱春天的,春天也是热爱柳树的。

pandas 将字符串映射为数字

在有些数据集中,有些数据变量用字符串表示,但为了方便处理,往往想转换为好处理的格式,这时候不一定要用one hot进行编码,也可以直接转成整数:

test_df["xx"] = pd.factorize(test_df["xx"])[0].astype(int)

但是这样映射的数字是从0开始的,如果有初始要求,可以对映射结果加上某个值,例如,把从0开始变为从15开始:

test_df["xx"] = test_df["xx"].add(15)

效果gift_cards["user_id"] = pd.factorize(gift_cards["user_id"])[0].astype(int):

user_id item_id ratings time0 B001GXRQW0 APV13CM0919JD 1.0 12296448001 B001GXRQW0 A3G8U1G1V082SN 5.0 12294720002 B001GXRQW0 A11T2Q0EVTUWP 5.0 12294720003 B001GXRQW0 A9YKGBH3SV22C 5.0 12294720004 B001GXRQW0 A34WZIHVF3OKOL 1.0 1229472000... ... ... ... ...147189 B01H5PPJT4 A2K9WVQW9TLWNK 5.0 1536969600147190 B01H5PPJT4 A149ALSR6TPGF7 4.0 1536278400147191 B01H5PPJT4 A2Q066NZCQSCOR 5.0 1535500800147192 B01H5PPJT4 A1KJLWCW7XBS8I 5.0 1534550400147193 B01H5PPJT4 ANABUB0FRZXRM 5.0 1534204800

user_id item_id ratings time0 0 APV13CM0919JD 1.0 12296448001 0 A3G8U1G1V082SN 5.0 12294720002 0 A11T2Q0EVTUWP 5.0 12294720003 0 A9YKGBH3SV22C 5.0 12294720004 0 A34WZIHVF3OKOL 1.0 1229472000... ... ... ... ...147189 858 A2K9WVQW9TLWNK 5.0 1536969600147190 858 A149ALSR6TPGF7 4.0 1536278400147191 858 A2Q066NZCQSCOR 5.0 1535500800147192 858 A1KJLWCW7XBS8I 5.0 1534550400147193 858 ANABUB0FRZXRM 5.0 1534204800

pandas 将某一列的字符值转换为数字

使用map的方法就可以实现把某一列的字符类型的值转换为数字。

class_mapping = {'A':0, 'B':1}
data[class] = data[class].map(class_mapping)

首先定义一个字典,然后使用map方法就可以把某一列的字符类型的值转换为数字。

好了,这就是对使用pandas把某一列的字符值转换为数字的认识。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

标签: pandas