二期题目解答

MYSQL.png
需求1:用一条SQL语句删除除了自动编号不同,其他都相同的学生冗余信息

假设学生表数据字典如下:
Student——学生表
Id——自动编号
SId——学生编号
Sname——学生姓名
CId——课程编号
Cname——课程名称
Score——分数
解题思路:
首先对自动编号以外的字段进行分组(也就是筛选出非重复的信息)得到临时表,再对两表进行联结操作,删除副表中自动编号为null的信息(也就是重复信息)
sql语句:

delete *
from Student as b
left join
                (select  min(SId)
                  from Student
                  groupby SId,Sname,CId,Cname,Score) as a
on b.SId= a.SId
where a.SId is null;
需求2:用一条SQL语句显示所有可能的比赛组合

sql语句:

select *
from team as a,team as b
where a.name>b.name;
Python与操作题.png
需求1:理解DataFrame.reset_index函数中drop,append,inplace参数的作用

解答1:

drop参数(默认为false):

drop=True: 原有的索引不变添加列名index,同时在新列上重置索引。
drop=False:在原有的索引列重置索引,不再另外添加新列

举例如下:
drop1.png

drop2.png
inplace参数(默认为false):

inplace=True:不创建新的对象,直接对原始对象进行修改;
inplace=False:对数据进行修改,创建并返回新的对象;

inplace1.png

inplace2.png
reset_index()函数好像没有append参数...求解
需求2:如何将df2附加到df1的末尾
df1= pd.concat([df1,df2],axis=1) 
concat.png
需求3:如何正确理解if_name==‘main'

通俗的理解name == 'main':假如你叫小明.py,在朋友眼中,你是小明(name == '小明');在你自己眼中,你是你自己(name == 'main')。

if name == 'main'的意思是:当.py文件被直接运行时,if name == 'main'之下的代码块将被运行;当.py文件以模块形式被导入时,if name == 'main'之下的代码块不被运行
具体见参考链接

需求4:for in range()的作用是什么

主要作用就是遍历循环。
用法介绍如下:
以for i in range ()为例:
range()是函数,for i in range () 就是给i赋值。

比如 for i in range (1,3):
就是把1,2依次赋值给i

range () 函数的使用举例如下:
range(3)即:从1到3,不包含3,即0,1,2
range(1,3) 即:从1到3,不包含3,即1,2
range(1,3,2)即:1,2。第三个数字2是代表步长。如果不设置,就是默认步长为1

一些个人对for循环在pandas中使用的理解:
1.pandas在dataframe的操作中,很多数据处理内建函数都能实现。一般没必要遍历整个df去操作
比如缺失值填充fillna,值替代replace。
2、一些复杂的操作需要遍历列做自定义函数处理,结合map、apply等,这个可以理解。
例如:CD用户消费行为中的用户分层、回购率计算的代码实现,黑五案例中求年龄维度的人数计算、Adventure项目中for循环结合pct_change()函数实现单月环比计算。

操作题目:

需求1:使用Python读取excel数据,保存到mysql
#导入模块
import pymysql
pymysql.install_as_MySQLdb()
from sqlalchemy import create_engine
#读取excel文件
df=pd.read_excel(r'C:\Users\dell\Desktop\Python\项目\第一部分\表格制作\城市销量2.xlsx')
#存储至Mysql
lengine = create_engine("mysql://{}:{}@{}/{}?charset={}".format('username', 'password', '106.15.00:3306', 'test1','utf8'))
con =engine.connect()#创建连接
.to_sql(name ='test1_ben',con=con,if_exists='append',index =False)

你可能感兴趣的:(二期题目解答)