Search code examples
pythonpandasdataframetruncate

Pandas Dataframe How to cut off float decimal points without rounding?


I have longitude and latitude in two dataframes that are close together. If I run an exact similarity check such as

test_similar = test1_latlon.loc[~test1_latlon['cr'].isin(test2_latlon['cr'])]

I get a lot of failures because a lot of the numbers are off at the 5th decimal place. I want to truncate at after the 3rd decimal. I've seen people format so it shows up truncated, but I want to change the actual value. Using round() rounds off the data and I get even more errors, so is there a way to just drop after 3 decimal points?


Solution

  • As suggested here you can do:

    x = 1.123456
    float( '%.3f'%(x) )
    

    if you want more decimal places, just change the 3 with any number you need.