Q:

How to remove unwanted `.0` s in pandas?

How can I convert the components of a column of my pandas DataFrame from float type to actual string?
Initially when I read_csv them they display in Scientific notation:
e.g. 1.04983E+13
I used this following line to change the display type to show all digits with no decimal:
pd.set_option('display.float_format', lambda x: '%.0f' % x)

which seems to work initially (no decimal shown!):
sample_df['gpid'][0:2]
0    10498310800133
1   767838527881217

However, when I try to make a list out of it, it clearly includes the decimal .0 in front of each and every component
list(sample_df['gpid'])[0:2]
[10498310800133.0, 767838527881217.0]

How can I avoid this unwanted .0? [this has been an annoying thing for the entire day yesterday...]

A:

You seem to be confusing objects with their representations. This DataFrame holds floats. You can represent these how you like (as strings) but when you change display options the objects remain the same. Converting to a list sends these float objects into a python list which has it's own representation of floats (unrelated to pandas) and will always display the .0. 
You can't change the formatting of a python list. It is inbuilt. You could convert these floats to ints, by doing 
list(map(int, sample_df['gpid']))[0:2]
[10498310800133, 767838527881217]

but be aware you are making new objects, not simply changing their representations. This means any non-integer floats (ie. doesn't end in .0) will be converted to integers.
To convert the pandas values to strings, do
sample_df['gpid'] = sample_df['gpid'].apply(lambda f: format(f, '.0f'))

Output:
              gpid
0   10498310800133
1  767838527881217

