脑大熊猫df中的截短小数位



i可以使用math中的truncate函数truncate单独的浮子。但是,当试图将相同功能传递给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

您可以使用applymap

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

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

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

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

一种简单的方法是将其转换为整数值,例如:

df['X'] = df['X'].astype(int)

相关内容

  • 没有找到相关文章

最新更新