格式化输出为熊猫

时间:2019-03-29 09:38:00

标签: python-3.x pandas numpy

我有一张Excel工作表:

enter image description here

我读完了

import pandas as pd
import numpy as np

excel_file = 'test.xlsx'

df = pd.read_excel(excel_file, sheet_name=0)
print(df)

它显示:

  name         value
0    a  10000.000000
1    b  20000.000000
2    c  30000.000000
3    d  40000.000000
4    e  50000.000000
5    f      1.142857
6    g      1.285714

如何将数字输出格式化为%.2f,如何直接通过print (df)格式化数字,例如添加类似%.2f的打印内容,还是必须首先修改其内容并提交?回到df,然后再次打印?

更新:

我尝试下面的答案,df['value'].apply("{0:.2f}".format)不起作用:

import pandas as pd
import numpy as np

excel_file = 'test.xlsx'

df = pd.read_excel(excel_file, sheet_name=0)
print(df['value'])
df['value'].apply("{0:.2f}".format)
print(df['value'])
print(df)

它显示:

0    10000.000000          
1    20000.000000          
2    30000.000000          
3    40000.000000          
4    50000.000000          
5        1.142857          
6        1.285714          
Name: value, dtype: float64
0    10000.000000          
1    20000.000000          
2    30000.000000          
3    40000.000000          
4    50000.000000          
5        1.142857          
6        1.285714          
Name: value, dtype: float64
  name         value       
0    a  10000.000000       
1    b  20000.000000       
2    c  30000.000000       
3    d  40000.000000       
4    e  50000.000000       
5    f      1.142857       
6    g      1.285714       

pd.set_option('display.float_format', lambda x: '%.2f' % x)的工作原理:

0   10000.00               
1   20000.00               
2   30000.00               
3   40000.00               
4   50000.00               
5       1.14               
6       1.29               
Name: value, dtype: float64
  name    value            
0    a 10000.00            
1    b 20000.00            
2    c 30000.00            
3    d 40000.00            
4    e 50000.00            
5    f     1.14            
6    g     1.29            

2 个答案:

答案 0 :(得分:1)

默认的precision是6。您可以使用pandas.set_option覆盖它:

pd.set_option('display.precision', 2)

答案 1 :(得分:1)

您可以像这样在pandas set_option中更改熊猫的float_format

pd.set_option('display.float_format', lambda x: '%.2f' % x)

如果只想更改一列的格式,则可以执行apply并更改格式,

df['age'].apply("{0:.2f}".format)

# Output

0    10000.00
1    20000.00
2    30000.00
3    40000.00
4    50000.00
5        1.14
6        1.29
Name: age, dtype: object