3 回答

TA貢獻1847條經(jīng)驗 獲得超7個贊
我想指出的一件事是,科學(xué)計數(shù)法中的值不會對分析產(chǎn)生任何重大影響。JK 對這個問題給出了最好的回應(yīng),但是隨著數(shù)據(jù)集大小的增加,這種方法(非矢量化方法)對于系統(tǒng)來說可能過于強大,而且他/她示例中的“結(jié)果”變量的數(shù)據(jù)類型為小數(shù)(不浮動)。
>>>type(decimal.Decimal(1.22))
<class 'decimal.Decimal'>
要克服這些問題,您可以這樣做:
import decimal
s = pd.Series([-3.75e-05,
-6.25e-05,
-8.75e-05,
-8.75e-05,
-8.75e-05,
-0.0001125,
-0.00015,
-0.0001625,
-0.0001625,
-0.0001625])
s=s.apply(decimal.Decimal)
print(s)
輸出:
0 -0.0000374999999999999967148674173689215649574...
1 -0.0000625000000000000013010426069826053208089...
2 -0.0000874999999999999991109542185618863641138...
3 -0.0000874999999999999991109542185618863641138...
4 -0.0000874999999999999991109542185618863641138...
5 -0.0001124999999999999969208658301411674074188...
6 -0.0001499999999999999868594696694756862598296...
7 -0.0001624999999999999925406890532997294940287...
8 -0.0001624999999999999925406890532997294940287...
9 -0.0001624999999999999925406890532997294940287...

TA貢獻1843條經(jīng)驗 獲得超7個贊
嘗試使用十進制,結(jié)果將是一個列表:
from decimal import Decimal
s = pd.Series([-3.75e-05,
-6.25e-05,
-8.75e-05,
-8.75e-05,
-8.75e-05,
-0.0001125,
-0.00015,
-0.0001625,
-0.0001625,
-0.0001625])
result = [round(Decimal(x),5) for x in s]
result
結(jié)果:
[Decimal('-0.00004'),
Decimal('-0.00006'),
Decimal('-0.00009'),
Decimal('-0.00009'),
Decimal('-0.00009'),
Decimal('-0.00011'),
Decimal('-0.00015'),
Decimal('-0.00016'),
Decimal('-0.00016'),
Decimal('-0.00016')]
添加回答
舉報