Pandas学习笔记6 大作业——Datawhale组队学习

练习一(我自己的版本,文末有一个专业版本供参考学习):
在这里插入图片描述
首先读入数据

import numpy as np
import pandas as pd

df = pd.read_csv('data/2002年-2018年上海机动车拍照拍卖.csv')
df.head()

第一问参考代码:

# (1)
s =df.apply(lambda x: x['Total number of license issued'] / x['Total number of applicants'], axis=1)
s.head()
df1 = df.assign(Bidding_rate=s)
df1.head()
# bdr = df[df['Bidding_rate']<0.05]
df1.query('Bidding_rate < 0.05').index[0]

在这里插入图片描述
第二问参考代码:

# (2)
year = df['Date'].apply(lambda x: str(20) + ("%02d" % int(x.split('-')[0])))
month = df['Date'].apply(lambda x: x.split('-')[1])
df2=df.drop(['Date'],axis=1)
df2.insert(0, 'Year', year)
df2.insert(1, 'Month', month)
df2.head()

在这里插入图片描述
第三问参考代码:

# (3)
df3 = df2.groupby("Year")
df4 = pd.DataFrame()
df4['max'] = df3['lowest price '].max()
df4['mean'] = df3['lowest price '].mean()
df4['.75'] = df3['lowest price '].quantile(.75)
df4.head()

在这里插入图片描述
第四问参考代码:

# (4)
df5 = pd.pivot_table(df2,index='Year'
            ,columns='Month'
            ,values=['Total number of license issued','lowest price ','avg price', 'Total number of applicants']).stack(level=0)
df5.head(6)

在这里插入图片描述
第五问参考代码:
参考Pandas组队学习(上)——综合练习题答案

# (5)
df6 = df[['Date','lowest price ','avg price']]
unSatisfies = []
for index in range(1, len(df6)):
    if ((df6.iloc[index]['lowest price '] - df6.iloc[index-1]['lowest price '])\
    * (df6.iloc[index]['avg price'] - df6.iloc[index-1]['avg price'])) < 0:
        unSatisfies.append(df6.iloc[index]['Date'])
unSatisfies

在这里插入图片描述
第六问参考代码:
参考Pandas组队学习(上)——综合练习题答案

# (6)
df7 = df[['Date','Total number of license issued']]
gains = [0, 0]
for index in range(2, len(df7)):
    gains.append(df7.iloc[index]['Total number of license issued'] - np.mean([df7.iloc[index-1]['Total number of license issued'], df7.iloc[index-2]['Total number of license issued']]))

# df7['gains'] = gains
df7.loc[:, ('gains')] = gains
df7.head()

print('极大值时间:')
print(df7[df7['gains'] == df7['gains'].max()]['Date'].values)
print('极大值:')
print(df7['gains'].max())
print('极小值时间:')
print(df7[df7['gains'] == df7['gains'].min()]['Date'].values)
print('极小值:')
print(df7['gains'].min())

在这里插入图片描述
专业版本:flashriver/joyfull_pandas
专业版本考虑问题更周到,给出的解决方法更专业简单。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值