The type object is actually string in pandas dataframe.
If you would like to retain the data as string, use df.to_excel() instead of df.to_csv. This is because when opening the CSV file, Excel will automatically convert the number data to numbers.
df1 = pd.DataFrame({'GL': [2311000200.0, 2312000600.0, 2330800100.0]})
df1.GL = df1.GL.astype('int64').astype('string')
df1.to_excel('test.xlsx', index=False)

The type object is actually string in pandas dataframe.
If you would like to retain the data as string, use df.to_excel() instead of df.to_csv. This is because when opening the CSV file, Excel will automatically convert the number data to numbers.
df1 = pd.DataFrame({'GL': [2311000200.0, 2312000600.0, 2330800100.0]})
df1.GL = df1.GL.astype('int64').astype('string')
df1.to_excel('test.xlsx', index=False)

You can force it to use the string dtype by using:
>>> df1.GL.astype("string")
df1.GL
0 2311000200.0
1 2312000600.0
2 2330800100.0
Name: GL, dtype: string
However, object dtypes are fine for most string operations. As per the docs:
For backwards-compatibility, object dtype remains the default type we infer a list of strings to
How to convert python int into numpy.int64? - Stack Overflow
Unimplemented cast int64 to string is not supported - tensorflow_model_server
to_dict doesn't convert np.int64 to python integers
BUG: using dtype='int64' argument of Series causes `ValueError: values cannot be losslessly cast to int64` for integer strings
z_as_int64 = numpy.int64(z)
It's that simple. Make sure you have a good reason, though - there are a few good reasons to do this, but most of the time, you can just use a regular int directly.
import numpy as np
z = 3
z = np.dtype('int64').type(z)
print(type(z))
outputs:
<class 'numpy.int64'>
But i support Juliens question in his comment.