dhu 数据科学与技术 第5次作业

一. 简答题(共2题,100分)

  1. (简答题, 50分)
    根据某系的实验教学计划,完成以下分析:

1)读取DataScience.xls文件数据,创建为data数据对象;

2)查询df的数据量和基本结构(df.index,df.columns);

3)查询df中是否含有NaN数据?将含有NaN数据的行导出为数据文件pre.csv,判断采用何种数据清洗模式:填充、删除或手工填充;

4)查询课程名称、实验项目名称、实验类型和二级实验室四列数据内容;

5)统计每一门课程的实验课时数;

6)统计每周开设所有实验课时数;

7)统计每门课程的实验类型分布(crosstab);

8)统计每个班级的实验课课表;

9)分析各二级实验室承担的实验课时量;

10)分析各二级实验室能够支持的实验类型。

DataScience.xls

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

# 1)
data = pd.read_excel('C:\\python\\DataScience.xls')

# 2)
print(data.index)
print(data.columns)

# 3)
print(data.isnull().any(axis=0))
data[data.isnull().any(axis=1)].to_csv('C:\\python\\pre.csv',mode = 'w')
data.dropna(how='all',inplace=True)
data.drop_duplicates(inplace = True)
data.fillna(method = 'ffill',inplace = True)

# 4)
print(data[['课程名称','实验项目名称','实验类型','二级实验室名称']])

# 5)
print(data.groupby('课程名称')['实验课时数'].count())

# 6)
print(data.groupby('周次')['实验课时数'].sum())

# 7)
data1=pd.crosstab(data['课程名称'],data['实验类型'])
print(data1)

# 8)
data1=data.sort_values(by=['周次','星期','节次']).groupby(['班级'])
for key,values in data1:
    print(key,'\n',values)

# 9)
print(data.groupby(['二级实验室名称','周次'])['实验课时数'].sum())
print(pd.crosstab(data['二级实验室名称'],data['实验课时数']))

# 10)
print(pd.crosstab(data['二级实验室名称'],data['实验类型']))
  1. (简答题, 50分)
    根据银行储户的基本信息(如表),完成以下分析。

id

age

sex

region

income

married

children

car

save_act

current_act

mortgage

pep

编号

年龄

性别

区域

收入

婚否

孩子数

有车否

存款账户

现金账户

是否抵押

接受

新业务

(1)从bankpep.csv文件中读取用户信息。

(2)查看储户的总数,以及居住在不同区域的储户数。

(3)计算不同性别储户收入的均值和方差。

(4)按性别、区域统计接受新业务的储户数。

(5)将存款账户、接受新业务的数据转化为数值型。

(6)分析收入、存款账户与接受新业务之间的关系。

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

# 1)
data = pd.read_csv('C:\\python\\bankpep.csv')

# 2)
print('储户总数:',data['id'].count())
print(data.groupby('region')['id'].count())

# 3)
print(data.groupby(['sex']).aggregate({'income':['mean','var']}))

# 4)
print(data.groupby(['sex','region']).aggregate({'pep':['count']}))

# 5)
def f(x):
    if (x=='YES'):
        return 1
    elif (x=='NO'):
        return 0
data['save_act']=list(map(f,data['save_act']))
data['pep']=list(map(f,data['pep']))
print(data)

# 6)
print(data[['income','save_act','pep']].corr())

还是c++写着顺手。。。

你可能感兴趣的:(dhu,python,python,pandas,数据分析)