1.2002 年-2018 年上海机动车拍照拍卖
import pandas as pd
import numpy as np
df_car = pd.read_csv('data/2002年-2018年上海机动车拍照拍卖.csv')
print(df_car.shape)
print(df_car.info())
print(df_car.head())
#(1) 找出哪轮拍卖的中标率首次小于 5%
df = df_car.copy()
df['percent'] = df.apply(lambda x:x['Total number of license issued']/x['Total number of applicants'],axis=1)
# 修改 Date 列的格式为str(实际上改为int或datetime更好)
from dateutil.parser import parse
df.Date=df.Date.apply(lambda x:str(parse('-'.join([str(2000+int(x.split('-')[0])),x.split('-')[1]])))[:7])
# 按Date
df=df.sort_values(by='Date')
df.head()
for index, row in df.iterrows():
if row['percent']<0.05:
print(row['Date'])
break
print(df.head(1))
#(2) 按年统计拍卖最低价的下列统计量:最大值、均值、0.75 分位数,要求 显示在同一张表上。
df2=df.copy()
mulidx=pd.MultiIndex.from_tuples(df2.Date.apply(lambda x:x.split('-')))
df2.index=mulidx
df2=df2.reset_index()
df2=df2.rename({'level_0':'年份', 'level_1':'月份'},axis=1).drop(columns='Date')
print(df2.groupby('年份')['lowest price '].agg([('最大值','max'),('均值','mean'),('0.75分位数',lambda x:x.quantile(0.75))]))
#(3) 将第一列时间列拆分成两个列,一列为年份(格式为 20××),另一列为 月份(英语缩写),添加到列表作为第一第二列,并将原表第一列删除, 其他列依次向后顺延。
df3 = df2.copy()
print(df3.head())
#d(4)现在将表格行索引设为多级索引,外层为年份,内层为原表格第二至第五列的变量名,列索引为月份。
df4 = df3.copy()
newcolumns = ['年份']+list(df.columns[1:-2])
df4.set_index(newcolumns)
print(df4.head())
三,新冠肺炎在美国的传播
import pandas as pd
import numpy as np
df_q=pd.read_csv('data/美国确证数.csv')
df_s=pd.read_csv('data/美国死亡数.csv')
df_q.info()
df_s.info()
1.用 corr() 函数计算县(每行都是一个县)人口与表中最后一天记录日期 死亡数的相关系数。
df_s[['Population','2020/4/26']].corr()
2.截止到 4 月 1 日,统计每个州零感染县的比例
df_q_ratio=df_q.loc[:,['Admin2','Province_State','2020/4/1']]
df_q_ratio
s=[]
r=[]
for x in df_q_ratio['Province_State'].unique():
s.append(x)
if 0 in df_q_ratio.set_index(['Province_State','Admin2']).loc[x]['2020/4/1'].value_counts():
r.append(df_q_ratio.set_index(['Province_State','Admin2']).loc[x]['2020/4/1'].value_counts()[0]/df_q_ratio.set_index(['Province_State','Admin2']).loc[x]['2020/4/1'].index.size)
else:
r.append(1)
result=pd.DataFrame({'Province_State':s,'ratio':r})
result.head()
3.请找出最早出确证病例的三个县。
df=df_q.set_index('Admin2').loc[:,list(df_q.columns)[11:107]]
df.head()