从浮动对象中删除小数以绘制

Remove decimal from float object to plot

我正在尝试制作一个以 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 是一个 float 对象,所以事情变得复杂了。我修复了 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'> 我很迷茫。有人知道这里发生了什么吗?

先将float 转换为int,然后再转换为string。您需要使用 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")