我可以使用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;
答案 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']]
。希望对您有帮助