我正试图制作一个具有公司名称+呼叫总数作为标签的图表。
我正在使用散景
命令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'>
我很困惑。有人知道这是怎么回事吗?
先将浮点数转换为整型,然后再转换为字符串。您需要使用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")