Python 科学数字中的四舍五入

Python 科学数字中的四舍五入,python,pandas,dataframe,Python,Pandas,Dataframe,你好,我有一个df,例如: COL1 COL2 0.005554 0.35200000000000004 5.622e-11 0.267 0.006999999999999999 0.307 2.129e-14 0.469 2.604e-14 0.39 1.395e-60 0.27899999999999997 8.589999999999998e-74 0.29600000000000004 1.025e-42 0.42700000000000

你好,我有一个df,例如:

COL1        COL2
0.005554    0.35200000000000004
5.622e-11   0.267
0.006999999999999999    0.307
2.129e-14   0.469
2.604e-14   0.39
1.395e-60   0.27899999999999997
8.589999999999998e-74   0.29600000000000004
1.025e-42   0.4270000000000001
我不知道如何使用

df['COL2'] = df['COL2'].round(3)
但是如果我对COL1执行相同的操作,它只显示0

我怎样才能取而代之:

COL1        COL2
0.005   0.352
5.622e-11   0.267
0.007   0.307
2.129e-14   0.469
2.604e-14   0.39
1.395e-60   0.279
8.560e-74   0.296
1.025e-42   0.427
事实上,最大的问题在于:

它显示:
8.5899999998E-74
昏迷后我只想留下3个号码

8.590e-74

结果数据帧的第1行和第3行是否也为0?
因为当四舍五入到第三位小数时,所有其他行都是0,因为5.622e-11是0.00000000005622,所以四舍五入到3位小数,它是0。

结果数据帧的第1行和第3行也是0吗?
因为当四舍五入到第三个小数点时,所有其他行都是0,因为5.622e-11是0.00000000005622,所以四舍五入到3个小数点,它是0。

假设您只想为了显示目的而这样做,您可以设置

pd.options.display.precision=3
打印(df)
或仅在临时情况下这样做:

带有pd.option\u上下文('display.precision',3):
打印(df)

假设您只想出于显示目的执行此操作,您可以设置

pd.options.display.precision=3
打印(df)
或仅在临时情况下这样做:

带有pd.option\u上下文('display.precision',3):
打印(df)

您不想对第一列中的值进行四舍五入-四舍五入意味着较低的数字消失了。我认为您实际上想要做的是改变Pandas在屏幕上显示数据的方式,而不是改变dataframe中的实际值。默认值已经是科学符号

您可以指定所有列的显示格式,如下所示(这将显示点后的前三位数字):

由于要保留第一列的格式,而不是第二列的格式,因此可能需要分别设置每列的格式。您可以对第2列使用:

df.style.format({'COL2': '{:.3f}')

编辑:因为您的答案是保存到CSV,所以您需要将其作为参数传递给
到_CSV
float_format='{.3E}'
。这将以科学记数法保存所有列。如果您只想对第1列执行此操作,可以尝试解决方法。

您不想对第一列中的值进行舍入-舍入意味着较低的数字消失了。我认为您实际上想要做的是改变Pandas在屏幕上显示数据的方式,而不是改变dataframe中的实际值。默认值已经是科学符号

您可以指定所有列的显示格式,如下所示(这将显示点后的前三位数字):

由于要保留第一列的格式,而不是第二列的格式,因此可能需要分别设置每列的格式。您可以对第2列使用:

df.style.format({'COL2': '{:.3f}')

编辑:因为您的答案是保存到CSV,所以您需要将其作为参数传递给
到_CSV
float_format='{.3E}'
。这将以科学记数法保存所有列。如果您只想在第1列中使用此选项,您可以尝试解决方案。

这更像是一个注释。请考虑在这个问题上重新定位。这是我最初想要做的,但是我的名声仍然很低。这是一个评论。请考虑在这样的问题下重新定位它。这是我最初想要做的,但是我的名声仍然很低。我需要在使用ToSyCSV之后保存数据文件,所以它不是为了显示需要使用ToSyCSV保存数据文件,所以它不是用于显示的。