Pandas Dataframe Как вырезать десятичные точки с плавающей точкой без округления? - PullRequest
2 голосов
/ 26 июня 2019

У меня есть долгота и широта в двух данных, которые расположены близко друг к другу. Если я запускаю точную проверку сходства, такую ​​как

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

Я получаю много сбоев, потому что многие цифры выключены с 5-го знака после запятой. Я хочу усечь после 3-го знака после запятой. Я видел, как люди форматируют, поэтому они отображаются усеченными, но я хочу изменить фактическое значение. Использование round() округляет данные, и я получаю еще больше ошибок, так есть ли способ просто отбросить после 3 десятичных знаков?

Ответы [ 2 ]

3 голосов
/ 27 июня 2019

Как предложено здесь вы можете сделать:

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

, если вам нужно больше десятичных знаков, просто измените 3 на любое нужное вам число.

1 голос
/ 27 июня 2019
import math

value1 = 1.1236
value2 = 1.1266

value1 = math.trunc(1000 * value1) / 1000;
value2 = math.trunc(1000 * value2) / 1000;

#value1 output
1.123

#value2 output
1.126
...