截断pandas df中值的小数位

时间:2019-06-27 00:12:23

标签: python pandas math truncate

我可以使用array.push({ [country]: cities }); 中的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;

3 个答案:

答案 0 :(得分:4)

您可以使用applymap

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

df.applymap(trunc)

答案 1 :(得分:3)

我相信最简单的方法是使用.astype(int) 在您的示例中,它将是:

df[x] = ((df[x]*1000).astype(int).astype(float))/1000

答案 2 :(得分:2)

尝试将df['X'] = math.trunc(1000 * df['X']) / 1000;更改为df['X'] =[math.trunc(1000 * val) / 1000 for val in df['X']]。希望对您有帮助