Pec*_*kee 7 python format scientific-notation dataframe pandas
我放入.describe()一个数据框,输出看起来不太好。我希望输出显示整数,而不是用指数简化。
输入:
df["A"].describe()
Run Code Online (Sandbox Code Playgroud)
输出的样子:
count 6.000000e+01
mean 7.123568e+04
std 2.144483e+05
min 1.000000e+02
25% 2.770080e+03
50% 1.557920e+04
75% 4.348470e+04
max 1.592640e+06
Name: A, dtype: float64
Run Code Online (Sandbox Code Playgroud)
预期输出:
count 60.0
mean 7123.568
std 214448.3
min 100.0000
25% 2770.080
50% 15579.20
75% 43484.70
max 1592640.0
Name: A, dtype: float64
Run Code Online (Sandbox Code Playgroud)
Sre*_* TP 15
您可以更改float_format熊猫中的熊猫set_option
import pandas as pd
import numpy as np
pd.set_option('display.float_format', lambda x: '%.5f' % x)
data = pd.DataFrame()
data['X'] = (np.random.rand(1000, ) + 10000000) * 0.587
data['X'].describe()
# Output
count 1000.00000
mean 5870000.47894
std 0.28447
min 5870000.00037
25% 5870000.23637
50% 5870000.45799
75% 5870000.71652
max 5870000.99774
Name: X, dtype: float64
Run Code Online (Sandbox Code Playgroud)
使用或不使用set_option使用apply过的输出系列这样的
import pandas as pd
import numpy as np
data = pd.DataFrame()
data['X'] = np.random.rand(1000, ) + 10000000 * 0.587
data['X'].describe().apply("{0:.5f}".format)
#output
count 1000.00000
mean 5870000.48955
std 0.29247
min 5870000.00350
25% 5870000.22416
50% 5870000.50163
75% 5870000.73457
max 5870000.99995
Run Code Online (Sandbox Code Playgroud)
And*_*dre 14
包括对上面建议的答案的一个小修改,这往往会在我的 Python (3.7.7)/Pandas (1.3.3) 版本中引发错误。假设您只需要直到第三位有效数字的摘要统计信息,您可以使用applymap()匿名函数。
例如:
df[["A"]].describe().applymap(lambda x: f"{x:0.3f}")
Run Code Online (Sandbox Code Playgroud)
vra*_*a95 11
尝试为使用 pandas 获得的输出设置浮点格式
import pandas as pd
pd.set_option('display.float_format', lambda x: '%.3f' % x)
Run Code Online (Sandbox Code Playgroud)
小智 10
如果您使用 Python 3.8 和 Pandas 1.3.5,则简单的解决方案:
df.describe().applymap('{:,.2f}'.format)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12105 次 |
| 最近记录: |