美文网首页
pandas实例-Visualization-Online Re

pandas实例-Visualization-Online Re

作者: 橘猫吃不胖 | 来源:发表于2020-05-20 23:04 被阅读0次

    继续前面的练习,之前的文章参考:


    先来加载我们的数据集,这次有点儿问题

    df = pd.read_csv(data_path  ,sep=',')
    

    我看了原始数据,就是逗号分隔,而且文件编码也是utf-8,但是加载的时候不行

    关于如何查看文件编码:

    这个文件有点儿大,所以执行那个编码验证有点儿慢

    df = pd.read_csv(data_path  ,sep=',' , encoding='ISO-8859-1')
    
    

    先来理解下这个数据集,看上去,是线上销售的订单,有商品,有数量,有客户,有国家

    1. Create a histogram with the 10 countries that have the most 'Quantity' ordered except UK

    从题目看上去是要画一个直方图,按销量排序的,但是答案中是柱形图,也是这个单词也叫做柱形图,先这么来吧

    首先,我们要按照国家聚合,对数量求和,然后排个序,最后把图画出来,并且剔除UK

    先不剔除,看看结果数据:

    df.groupby('Country')['Quantity'].sum().sort_values(ascending=False)
    

    加上剔除:

    df2 = df.query('Country != "United Kingdom"').groupby('Country')['Quantity'].sum().sort_values(ascending=False)
    
    df2.head(10).plot.bar(x='Country')
    

    2. Exclude negative Quantity entries

    这里要剔除些销量,是负的的意思吧,先看看,估计是退货的

    df.query('Quantity < 0').head()
    

    而且顺便发现了这个单价还有负的,不知道是不是异常数据,这个应该得剔除掉

    3. Create a scatterplot with the Quantity per UnitPrice by CustomerID for the top 3 Countries (except UK)

    这里要画个散点图,关于销量和单价的,购买人数前三的国家?

    这个题目有点儿乱,我看了答案,也没搞懂到底是什么意思,我先按上面的理解来看看结果

    假设就是看每个国家的购买人数,这个还是有点儿坑,感觉算的有点儿麻烦,等我找找简单的方式

    我一开始是这么处理的:

    df = df.query('UnitPrice > 0')
    
    df3 = df.groupby(['Country' , 'CustomerID']).count().reset_index()
    
    df3.groupby('Country')['CustomerID'].count().sort_values(ascending=False)
    

    在SQL里就是一个count(distinct xx)操作而已,应该可以简化的

    先不管过程,就结果来说,和作者给的是不一样,而他自己的代码也没有写怎么得到的那3个城市,所以我很奇怪。

    先说说怎么简化上面的代码,实现count(distinct xx)

    df.groupby(['Country']).agg({'CustomerID':pd.Series.nunique}).sort_values(by='CustomerID' , ascending=False)
    

    看来这个agg函数,我没有掌握好呀,一会儿研究一下,先继续好了

    不管是不是这3个城市,先画图吧:

    sns.relplot(x='Quantity' , y='UnitPrice' , col='Country' , data=df.query('Country in ("Germany","France","Spain")') )
    

    使用seaborn画散点图很方便

    4. Investigate why the previous results look so uninformative

    呃,作者这一题,貌似展开了一下,说明了几个问题,也就是上面我疑问的地方

    作者那3个城市,是按照销量来的

    哦,这一篇,我要放弃了,感觉原文好乱,或者是我英文理解的不太好,

    为什么作者用单价*销量,然后又除以销量,是要算一个件均GMV??

    貌似,作者最后是算了一个商品单价越高,收入越低,然后把单价按照1元进行了分桶,看上去是这样,实际上就是散点图啊,单价和收入(单价*销量),这不还是单价和销量的关系吗?

    恩,也许是不一样,单价和GMV的关系

    搞不懂,算了,这一篇就这样吧

    相关文章

      网友评论

          本文标题:pandas实例-Visualization-Online Re

          本文链接:https://www.haomeiwen.com/subject/oljsohtx.html