在python中将对象列转换为int列

时间:2020-05-07 14:39:37

标签: python pandas

我在python中有一个奇怪的转换问题。我有一个对象列,我想将其转换为整数列以节省一些内存空间。我运行以下命令:

df['Number'] = df['IntC'].astype(int)

对于某些行,它最终会像这样:

IntC               Number
233004885002       -188830000475
233048850003       -195883838200

这是怎么回事?我希望得到结果:

IntC               Number
233004885002       233004885002 
233048850003       233048850003

2 个答案:

答案 0 :(得分:1)

如果将对象转换为int,为什么不做因数

df['Number'] = df.IntC.factorize()[0]

答案 1 :(得分:0)

使用 Lambda 函数是一个非常普遍的选择

df['Number'] = df.IntC.apply(lambda c: int(c))