这几天在画人均消费的可视化图时总是遇到问题,报错是:
TypeError: can’t multiply sequence by non-int of type 'float’
看字面意思很好理解,就是解析的时候遇到非整数的浮点数导致不能进行相乘的运算,所以出错是因为数据类型不对,因此解决办法就是转换数据类型!
于是掌柜就去查看Excel表格中数据列的数据类型。
打开Excel表格显示说这一列数据为文本格式,所以直接选择“转换为数字”这个选项!
然后这个问题就此解决了,再次运行程序的时候,发现又有新的报错…见下图:
是的,依然是TypeError!注意看最开始报错掌柜红色画线部分(if bins is None),此时掌柜突然想起来,这一列存在缺失值的问题。因为当初爬取数据时,有些咖啡店的价格存在None值,所以掌柜当时对缺失值进行了处理为“NaN”。。。
好了,问题找到了,那么解决的办法也就有了,先处理缺失值然后再进行数据可视化。 一般对缺失值的处理有好几种方法(下一篇写),这里主要用填充法。 但是这里如果用0来填充缺失值的话不太合理(咖啡怎么也不会是一直免费的);均值填充按理说也行,但是这里的一部分咖啡店(其实是大众点评把那些综合的西餐厅里面包含的咖啡服务也算进去了)价格存在过高,会拉高均值,所以也不适合;最后掌柜选择用相邻值来填充缺失值相对合理。解决代码如下:
data['mean-price'].fillna(method='ffill') #这里选择的是相邻值填充的前面值ffill方法
然后就成功处理了缺失值,并对人均消费进行了可视化。