Pandas 格式化/禁用科学计数法
在本文中,我们将介绍 Pandas 中如何格式化或禁用科学计数法,使聚合结果更加易读和直观。
首先,我们可以使用 Pandas 中的 option
功能来设置输出的格式。option
必须在导入 Pandas 后立即设置,因为它会影响 Pandas 中所有输出。我们可以使用 set_option()
方法来设置选项:
import pandas as pd
# 禁用科学计数法
pd.set_option('display.float_format', lambda x: '%.4f' % x)
上面的代码将使用 Lambda 函数来格式化浮点数,而不是使用默认的科学计数法。通过 %.4f
表示保留四位小数。
接下来,我们使用一个简单的示例来说明如何在聚合结果中禁用科学计数法:
# 构造数据
df = pd.DataFrame({
'col1': [1, 1000000],
'col2': [123456, 789012]
})
# 聚合求和
sums = df.sum()
# 查看聚合结果
print(sums)
输出结果:
col1 1000001.0000
col2 912468.0000
dtype: float64
我们可以看到,结果使用了科学计数法,不太容易阅读。现在,我们可以使用上面提到的 set_option()
函数来禁用它:
# 禁用科学计数法
pd.set_option('display.float_format', lambda x: '%.0f' % x)
# 聚合求和
sums = df.sum()
# 查看聚合结果
print(sums)
输出结果:
col1 1000001
col2 912468
dtype: int64
现在结果更加易读,更符合直觉。
除了使用 option
设置函数外,我们还可以使用 applymap()
函数来对 DataFrame 中的每个元素进行格式化。例如,我们可以使用以下代码来标记所有科学计数法结果,将其转换为人类可读的数字:
# 定义格式化函数
def format_number(x):
if isinstance(x, (int, float)):
# 使用 '%.2f' 表示保留两位小数
return '{:.2f}'.format(x)
else:
return x
# 应用格式化函数到 DataFrame
df = df.applymap(format_number)
# 查看 DataFrame
print(df)
输出结果:
col1 col2
0 1.00 123456.00
1 1000000.00 789012.00
我们可以看到,结果已经被格式化,不使用科学计数法。
阅读更多:Pandas 教程
总结
在本文中,我们介绍了如何在 Pandas 中格式化或禁用科学计数法,使聚合结果更加易读和直观。我们可以使用 option
功能来影响 Pandas 中所有的输出,或者使用 applymap()
函数来格式化 DataFrame 中的每个元素。希望这篇文章能够帮助你更好地理解 Pandas 中的数据处理技术!