为什么从 python 中的列表中提取元素时会丢失数值精度?

Why do I lose numerical precision when extracting element from list in python?

我有一个 pandas 数据框,如下所示:

                    data
0    [26.113017616106, 106.948066803935, 215.488217...
1    [26.369709448639, 106.961107298101, 215.558911...
2    [26.261267444521, 106.991763898421, 215.384122...
3    [26.285746968657, 106.912377030428, 215.287348...
4    [26.155342026996, 106.825440402654, 215.114619...
5    [26.159917638984, 106.819720887669, 215.117593...
6    [26.023564401739, 106.843056508808, 215.129947...
7    [26.1155342027, 106.828185769847, 215.15991763...
8    [26.028826355525, 106.841912605811, 215.146190...
9    [26.015099519561, 106.824296499657, 215.130404...

我正在尝试使用以下代码从列表系列中提取第一个元素:

[x[1] for x in df.data]

我得到了这个结果:

0    106.948067
1    106.961107
2    106.991764
3    106.912377
4    106.825440
5    106.819721
6    106.843057
7    106.828186
8    106.841913
9    106.824296

为什么我会失去精度,我该怎么做才能保持精度?

默认情况下,pandas 显示精度为 6 位的浮点值。

您可以使用 pandas' set_option 来控制精度,例如

pd.set_option('precision', 12)