📜  在 Pandas 中格式化 Dataframe 的浮点列(1)

📅  最后修改于: 2023-12-03 14:51:03.796000             🧑  作者: Mango

在 Pandas 中格式化 Dataframe 的浮点列

Pandas 是一种强大的数据操作库,特别适合于数据处理。在 Pandas 中,经常需要对 Dataframe 中的浮点数列进行格式化,以使其满足特定的显示需要。本文将介绍如何在 Pandas 中格式化浮点数列。

准备工作

假设我们有一个包含浮点列的简单 Dataframe:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1.234567, 2.345678, 3.456789],
    'B': [4.567890, 5.678901, 6.789012],
    'C': [7.890123, 8.901234, 9.012345]
})

此时,我们可以使用 Pandas 的 head 方法来查看前几行数据:

df.head()

输出:

          A         B         C
0  1.234567  4.567890  7.890123
1  2.345678  5.678901  8.901234
2  3.456789  6.789012  9.012345

我们可以看到,浮点列默认显示到小数点后 6 位。如果想调整小数位数,我们可以使用 Pandas 的 round 方法。

使用 Pandas 的 round() 方法

round 方法用于设置浮点数的小数位数,语法如下:

df.round(decimals, *args, **kwargs)

其中,decimals 参数表示需要保留的小数位数。

例如,如果我们希望将 Dataframe 中所有浮点列显示到小数点后 2 位,可以这样做:

df.round(decimals=2)

输出:

      A     B     C
0  1.23  4.57  7.89
1  2.35  5.68  8.90
2  3.46  6.79  9.01

我们可以看到,所有浮点数列都被显示到了小数点后 2 位。

使用 Pandas 的 apply() 方法

如果我们需要对不同的浮点数列设置不同的小数位数,可以使用 Pandas 的 apply 方法。假设我们需要将 A 列显示到小数点后 2 位,将 B 列显示到小数点后 3 位,将 C 列显示到小数点后 4 位,可以这样做:

df[['A', 'B', 'C']] = df[['A', 'B', 'C']].apply(lambda x: pd.Series(x).round(decimals=2), axis=1)
df[['B']] = df[['B']].apply(lambda x: pd.Series(x).round(decimals=3), axis=1)
df[['C']] = df[['C']].apply(lambda x: pd.Series(x).round(decimals=4), axis=1)

输出:

      A      B        C
0  1.23  4.568   7.8901
1  2.35  5.679   8.9012
2  3.46  6.789  9.01235

我们可以看到,A 列显示到了小数点后 2 位,B 列显示到了小数点后 3 位,C 列显示到了小数点后 4 位。

结论

在 Pandas 中格式化 Dataframe 的浮点列可以通过 round 方法和 apply 方法完成,具体方法取决于我们需要保留的小数位数。这些方法能够帮助我们更好地展示浮点数据,并使数据更易于理解。