【问题标题】:How to save pandas dataframe with float format changed to percentage with 2 decimal places如何将浮点格式的熊猫数据框更改为小数点后 2 位的百分比
【发布时间】:2019-01-14 13:24:36
【问题描述】:

根据文档(https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html),我们可以在dataframe的to_csv方法中指定浮点数格式。

我尝试使用float_format=':,.2%' 参数将浮点格式更改为2 个小数百分比,该参数适用于python 控制台(如'{:,.2%}'.format(3.14)),但to_csv 给出“格式不完整”错误。

【问题讨论】:

    标签: python pandas csv format


    【解决方案1】:

    使用旧样式格式:

    df = pd.DataFrame(np.random.random((5,5)))
    
    df.to_csv('test.out', float_format='%.2f', index=False, header=False)
    
    !type test.out
    

    输出:

    0.10,0.90,0.65,0.78,0.70
    0.03,0.45,0.75,0.92,0.94
    0.49,0.64,0.47,0.28,0.50
    0.48,0.09,0.86,0.33,0.55
    0.37,0.85,0.97,0.19,0.68
    

    您可以将数据乘以 100:

    df = pd.DataFrame(np.random.random((5,5)))*100
    
    df.to_csv('test.out', float_format='%.0f%%', index=False, header=False)
    
    !type test.out
    

    输出:

    48%,73%,30%,4%,54%
    76%,53%,58%,41%,22%
    97%,44%,58%,59%,60%
    95%,85%,47%,67%,88%
    4%,73%,66%,70%,97%
    

    【讨论】:

    • 这个可以显示为百分比吗?因此,它显示为 10%,而不是 0.10。
    • 可以不改变原来的值吗? 2 个十进制浮点数的格式适用于格式字符串,理想情况下,百分比格式也可以以相同的方式工作。
    • @liang 我不这么认为,to_csv 使用的是字符串模运算符。 format 是一种现代方法,不包含在 to_csv 中。
    • 现代你的意思是python 3.x? Python 2.x 似乎也能显示浮点的百分比格式。
    • 感谢您的解释!
    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 2019-06-20
    • 2019-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多