初学pandas,处理数据集来熟悉pandas

            从一个数据集开始,开启学pandas之旅。

         推荐大家一个网站:http://blog.csdn.net/u010945683/article/details/45344121。

         我下载的是一个有关书籍的数据集,包含三个文件:(1)BX-Users.csv;(2)BX-Books.csv;(3)BX-Book-Ratings.csv

         代码编辑器是jupyter  notebook(很好的ipyhon的编辑器)

         分析数据步骤如下:

        (1)读取数据及合并数据:  

     #读取数据
     book_rate=pd.read_csv('BX-Book-Ratings.csv', usecols=[0,1,2],sep=';', encoding='latin-1' )
     users=pd.read_csv('BX-Users.csv' , sep=';', encoding='latin-1')
     book_detail=pd.read_csv('BX-Books.csv',sep=';',usecols=[0,1,2,3,4],encoding='latin-1')
     #合并数据
     book_detail_rate=pd.merge(book_detail,book_rate)
     book=pd.merge(book_detail_rate,users)
           结果是:

         

        (2)选取前几行数据,用head()函数:

       book.head(5) 

       结果是:

          

        (3)选取数据的尾几行数据:用tail()函数:

       book.tail(5)

       结果是:

         

       (4)计算计数,均值,标准方差等,用describe()函数:

       book.describe()

       结果是:

             

       (5)选出评价最高的前10本书:

    book_rate_10=book.groupby('Book-Title').agg({'Book-Rating':[np.size,np.mean]})
    select_book=book_rate_10['Book-Rating']['size']>500
    book_rate=book_rate_10[select_book].sort_values([('Book-Rating','mean')],ascending=False)[:10]     

       结果是:

       

        

       (6)选出在2002年出版的书名,出版人,时间的前1列:     

    df=pd.DataFrame(book)
    group=df.groupby('Year-Of-Publication')
    book2002=group.get_group("2002")
    book_2002=book2002[['Book-Title','Year-Of-Publication','Publisher']]

      结果是:

        

       (7)选择在2002年出版的评分在前5名的书名:      

     book_5=book.groupby('ISBN').agg({'Book-Rating':[np.size,np.mean]})
     book5=book_5.sort_values([('Book-Rating','mean')],ascending=False)[:5]
     book.set_index('ISBN',inplace=True)
     book_new=pd.DataFrame(book)
     book5_1=book_new.loc[book5.index].groupby(['Book-Title','Year-Of-Publication']).size()

      结果是:

        

      (8)保存结果:

      book.to_csv('index2.csv')

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值