我有一个浮点数字的数据帧,我想使用我直观地看到的它们的精度或过零位数:
dd = pd.DataFrame({'x':[12.123456,10.12345,9.1234]})
dd['digits'] = dd['x'].apply(lambda num: num - int(num))
dd['target'] = [6, 5, 4]
x | 数字 | 目标 |
---|---|---|
1.1223456 | 0.123456 | |
10123450 | 5 | |
9.123400 | 0.123400 | 4 |
这里有另一种方法:
import pandas as pd
df = pd.DataFrame({"x": [12.123456, 10.12345, 9.1234]})
df["precision"] = df["x"].apply(
lambda x: [i for i in range(pd.options.display.precision + 1) if x == round(x, i)][0]
)
print(df)
# Output
x precision
0 12.123456 6
1 10.123450 5
2 9.123400 4
根据Pandas文档,display.precision
是一个整数(默认为6(,表示";浮点输出精度以小数后的位数表示,用于常规格式以及科学记数法。