一早上只是4.1数据清洗的内容,主要原因是对代码的不熟悉。调试百度了好久,最后最有用的办法就是看英文文档。看英文可能看起来很痛苦,但是耐心看的话还是不错的。而且是最直接最有效的方法。
------------------------------------------------------------------------------------------
最令人困惑的问题就是pandas的赋值问题。
代码4-1中
data[u'销量'][(data[u'销量'] < 400) | (data[u'销量'] > 5000)] = None #过滤异常值,将其变为空值这里会抛出
SettingWithCopy
warning异常。具体原因也不是太懂。是一种叫
chained indexing的东西。
要改成
data.loc[(data['销量'] < 400) | (data['销量'] > 5000), '销量'] = None # 使用 | 时,一定要在并集的两边加上括号而且在使用并集的时候需要在两边加上括号。否则会报错。
上面两种方法,简单来说,不同之处在于处理的方式不一样。
第一种会按照列单独处理,加入要提取两列的数据就是先处理第一列然后在处理第二列。
第二种会把所要提取得列当做一个整体,而不是分开处理,而且提高了效率。
具体参考:
http://pandas.pydata.org/pandas-docs/stable/indexing.html#returning-a-view-versus-a-copy
----------------------------------------------------------------------------------------------------
路漫漫其修远兮,学习的过程的漫长的,虽然现在的效率不高,但是慢慢学效果就会好了吧~JIAYOU