Pandas: astype(int) converts all values to -2147483648

I am converting large numbers to int using astype().

import pandas as pd
x = [56668772800.0, 55899926600.0, 55038007900.0, 58073681300.0, 58224458500.0]
df = pd.DataFrame(x, columns=["pol_number"])
df.pol_number = df.pol_number.astype(int)
df

And all five values have become -2147483648.

I assume the numbers are too big for type int but long int and big int don’t compile.

>Solution :

Try using int64:

import pandas as pd
x = [56668772800.0, 55899926600.0, 55038007900.0, 58073681300.0, 58224458500.0]
df = pd.DataFrame(x, columns=["pol_number"])
df.pol_number = df.pol_number.astype('int64')
df

Output:

    pol_number
0  56668772800
1  55899926600
2  55038007900
3  58073681300
4  58224458500

Leave a Reply