组队学习6:综合题(一)(基于Python)

组队学习介绍

  最近事情太多(以及人太懒),好久没有空更新博客,遂报名公众号Datawhale的Pandas学习小组来督促自己学习。学习小组的目的主要是细致地学习Python中的第三方模块Pandas,该模块用于数据导入及整理的模块,对数据挖掘前期数据的处理工作十分有用。

  学习小组的时间安排大致如下:

  • Task01:Pandas基础(1天)

  • Task02:索引(3天)

  • Task03:分组(2天)

  • Task04:变形(2天)

  • Task05:合并(2天)

  • Task06:综合练习(1天)

  学习小组的参考资料是Datawhale-GYH助教撰写的1


本博文的笔记概览如下所示:


综合题

  导入数据:

import numpy as np
import pandas as pd
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

一、2002 年-2018 年上海机动车拍照拍卖

path = '/Users/sunsimiao/Documents/2020自学/202004组队学Pandas/joyful-pandas-master/数据集/'
df1 = pd.read_csv(path+'2002年-2018年上海机动车拍照拍卖.csv')
df1.head()

组队学习6:综合题(一)(基于Python)_第1张图片

(1) 哪一次拍卖的中标率首次小于 5%?

df1['Auction winning rate'] = df1['Total number of license issued'] / df1['Total number of applicants']
df1.head()

组队学习6:综合题(一)(基于Python)_第2张图片

df1[df1['Auction winning rate']<0.05]['Date'].values[0]
'15-May'

(3) 将第一列时间列拆分成两个列,一列为年份(格式为 20××),另一列为月份(英语缩写),添加到列表作为第一第二列,并将原表第一列删除, 其他列依次向后顺延。

year = []
month = []
for f in list(df1['Date'].values):
    year.append(f.split('-')[0])
    month.append(f.split('-')[1])
df1['Year'] = year
df1['Year'] = df1['Year'].apply(lambda x: '200'+str(x) if len(str(x))==1 else '20'+str(x))
df1['Month'] = month
df1_year_month = df1.reindex(columns=['Year', 'Month', 'Date', 'Total number of license issued', 'lowest price ', 'avg price', 
                     'Total number of applicants', 'Auction winning rate'])
df1_year_month = df1_year_month.drop(columns='Date')
del df1_year_month['Auction winning rate']
df1_year_month.head()

组队学习6:综合题(一)(基于Python)_第3张图片

(2) 按年统计拍卖最低价的下列统计量:最大值、均值、0.75 分位数,要求显示在同一张表上。

df1_summary = df1_year_month.groupby('Year')
df1_summary_lowest_price = df1_summary.describe(percentiles=[.75])
df1_summary_lowest_price

组队学习6:综合题(一)(基于Python)_第4张图片

(4) 现在将表格行索引设为多级索引,外层为年份,内层为原表格第二至第五列的变量名,列索引为月份。

L1 = ['Year']
L2 = ['Total number of license issued', 'lowest price ', 'avg price', 'Total number of applicants']
mul_index = pd.MultiIndex.from_product([L1,L2],names=('Upper', 'Lower'))
pd.pivot_table(df1_year_month,index=['Year'],
               columns=['Month'])

组队学习6:综合题(一)(基于Python)_第5张图片

参考资料


  1. @GYHHAHA的githubhttps://github.com/datawhalechina/joyful-pandas ↩︎

你可能感兴趣的:(组队学习·数据竞赛,python,数据分析,机器学习)