【问题标题】:Remove decimal from float object to plot从浮点对象中删除小数以绘制
【发布时间】:2015-08-04 16:12:00
【问题描述】:

我正在尝试制作一个以 CompanyName + Total Number of Calls 作为标签的图表。

我在这个命令中使用散景

p.text(xr, yr, df.CompanyName + df.Total, angle=label_angle,
text_font_size="9pt", text_align="center", text_baseline="middle")

但是 CompanyName 是一个 str 而 Total 是一个浮点对象,所以事情变得复杂了。我修复了TypeError: cannot concatenate 'str' and 'float' objects 并设法使用

p.text(xr, yr, df.CompanyName + (map(str,df.Total)), angle=label_angle,
    text_font_size="9pt", text_align="center", text_baseline="middle")

但是,这会打印 CompanyName 和带小数的数字。我已经尝试了各种方式来删除这个小数,从经常建议的:

"{:.0f}".format(df.Total) 

这给了我这个:ValueError: Unknown format code 'f' for object of type 'str'

什么鬼,当我print df.Total 我得到dtype: float64 如果我尝试floor(df.Total) 我会得到TypeError: cannot convert the series to <type 'float'> 我很迷茫。有谁知道这里发生了什么?

【问题讨论】:

  • 尝试先将其转换为 int。
  • 类似map(str, map(int, df.Total))
  • 谢谢@Brobin!那行得通。我曾尝试将它转换为该命令之外的 int ,但它仍然对类型感到生气。您将其转换为 int 内部地图的方法使其起作用。
  • 太棒了,我会把它作为答案发布。

标签: python format decimal concatenation truncate


【解决方案1】:

先将浮点数转换为 int,然后再转换为字符串。您需要使用map,因为df.Total 是可迭代的。这就是float(df.Total) 不起作用的原因。

map(str,map(int, df.Total))

然后你可以在你的散景调用中连接它。

p.text(xr, yr, df.CompanyName + map(str,map(int, df.Total)),
       angle=label_angle, text_font_size="9pt",
       text_align="center", text_baseline="middle")

【讨论】:

    猜你喜欢
    • 2019-01-02
    • 2022-01-15
    • 1970-01-01
    • 2020-12-11
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多