【问题标题】:Converting float to string in pandas dataframe在熊猫数据框中将浮点数转换为字符串
【发布时间】:2018-02-01 08:15:38
【问题描述】:

我在 pandas 中有一个包含日期时间和浮点数据的数据框。

time                         price1              price2
2018-02-01T00:00:00.000Z     1.4526547885        1.654775563

我需要将列转换为字符串格式,这样 price1 和 price2 列显示的数字最多为小数点后 4 位,时间显示为:01,02,2018 00:00:00

对此的任何线索表示赞赏。谢谢

【问题讨论】:

    标签: python python-3.x pandas


    【解决方案1】:

    您可以使用dt.strftime 格式化datetimes,然后自定义格式floats:

    df['time'] = df['time'].dt.strftime('%Y,%m,%d %H:%M:%S')
    
    cols = ['price1','price2']
    df[cols] = df[cols].applymap(lambda x: '{0:.4f}'.format(x))
    print (df)
                      time  price1  price2
    0  2018,02,01 00:00:00  1.4527  1.6548
    

    【讨论】:

    • 有没有办法让 price1 和 price2 列数据的最后两位数字变粗并增大尺寸?
    • 我觉得不行,不可能。
    • 可能的解决方案是创建 html 并修改它。
    • 能否请你分享一个例子,如果可能的话,如何做到这一点
    • 没那么容易,我需要时间。
    【解决方案2】:

    您可以使用 round 方法仅显示 4 位小数。并使用 .apply(str) 将其转换为字符串对象

    EX

    df["price1"] = df["price1"].round(4).apply(str)
    df["price2"] = df["price2"].round(4).apply(str)
    

    【讨论】:

    • 我也需要将它们转换为字符串类型。日期时间类似
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    相关资源
    最近更新 更多