Усечение десятичных разрядов значений внутри панды df - PullRequest
1 голос
/ 27 июня 2019

Я могу truncate отдельные поплавки, используя функцию truncate в math.Но при попытке передать ту же функцию в столбец pandas df я получаю сообщение об ошибке.

import math
import pandas as pd

X = 1.1236

X = math.trunc(1000 * X) / 1000;

#Output
1.123

Но при использовании pandas df:

d = ({
    'X' : [1.1234,1.1235],           
    })

df = pd.DataFrame(data=d)

df['X'] = math.trunc(1000 * df['X']) / 1000;

Ошибка:

df['X'] = math.trunc(1000 * df['X']) / 1000;

TypeError: type Series doesn't define __trunc__ method

Ответы [ 2 ]

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

Вы можете использовать applymap

trunc = lambda x: math.trunc(1000 * x) / 1000;

df.applymap(trunc)
2 голосов
/ 27 июня 2019

Попробуйте изменить df['X'] = math.trunc(1000 * df['X']) / 1000; на df['X'] =[math.trunc(1000 * val) / 1000 for val in df['X']].Надеюсь, это поможет

...