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

9 篇文章 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++写着顺手。。。

  • 10
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值