Precisión perdida durante el uso de read_csv en pandas

Tengo archivos del siguiente formato en un archivo de texto que estoy intentando leer en un dataframe de pandas.

895|2015-4-23|19|10000|LA|0.4677978806|0.4773469340|0.4089938425|0.8224291972|0.8652525793|0.6829942860|0.5139162227| 

Como puede ver, hay 10 enteros después del punto flotante en el archivo de entrada.

 df = pd.read_csv('mockup.txt',header=None,delimiter='|') 

Cuando bash leerlo en el dataframe, no obtengo los últimos 4 enteros

 df[5].head() 0 0.467798 1 0.258165 2 0.860384 3 0.803388 4 0.249820 Name: 5, dtype: float64 

¿Cómo puedo obtener la precisión completa presente en el archivo de entrada? Tengo algunas operaciones de matriz que deben realizarse para que no pueda emitirlas como una cadena.

Me di cuenta de que tengo que hacer algo con respecto a dtype pero no estoy seguro de dónde debería usarlo.

Solo es problema de visualización, ver docs :

 #temporaly set display precision with pd.option_context('display.precision', 10): print df 0 1 2 3 4 5 6 7 \ 0 895 2015-4-23 19 10000 LA 0.4677978806 0.477346934 0.4089938425 8 9 10 11 12 0 0.8224291972 0.8652525793 0.682994286 0.5139162227 NaN 

EDITAR: (Gracias Mark Dickinson ):

Pandas usa un convertidor dedicado de decimales a binarios que sacrifica la precisión perfecta en aras de la velocidad. Pasar float_precision='round_trip' a read_csv corrige esto. Vea la documentación para más.