Importing a .csv file given by
a 1.4 1.12
leads to an addition of a trailing zero in the first line. How to avoid it?
Advertisement
Answer
This is just the visual representation of the float data in your df. If you want it different, change the format string for it.
For your numbers '{:,g}' would work (see format specification mini language – scroll down for the table that explains it).
Example:
import pandas as pd
import numpy as np
with open("data.txt","w") as f:
f.write("an1.4n1.12")
df = pd.read_csv("data.txt")
print(df)
# change the way floats are formatted
pd.options.display.float_format = '{:,.06f}'.format
# change the way floats are formatted
pd.options.display.float_format = '{:,g}'.format
df = pd.read_csv("data.txt")
print(df)
Output:
# default formatting
a
0 1.40
1 1.12
# {:,06f}
a
0 1.400000
1 1.120000
# {:,g}
a
0 1.4
1 1.12
From a numerical standpoint there is no difference between 1.4 and 1.40 or 00001.40000000000.
Guarav Kumar’s suggestion to use
df = pd.read_csv('minExamp.csv' , dtype = str)
is bad advice – it changes the data type for the (single) column to be of type string.
This will prevent you from calculating anything with the numbers of your dataframe.
