联表合并:merge
内连接
import pandas as pd
import numpy as np
dff1=pd.DataFrame({'stu_no':['01','02','01','03','02','04','03','04'],
'score':np.random.randint(60,100,size=8)})
dff2=pd.DataFrame({'stu_no':['01','02','03','05'],
'name':['Brett','Eddy','Kris','Jorden']})
dfm=pd.merge(dff1,dff2, on='stu_no') #功能与sql,inner join一致,左右表均存在的数据进行匹配
print(dff1,'\n',dff2,'\n',dfm)
左连接
dfm=pd.merge(dff1,dff2, on='stu_no',how='left') #功能与sql,left join一致
print(dfm)
右连接
dfm=pd.merge(dff1,dff2, on='stu_no',how='right') #功能与sql,right join一致
print(dfm)
外连接
dfm=pd.merge(dff1,dff2, on='stu_no',how='outer') #功能与sql,outer join一致
print(dfm)
表数据合并:concat
默认纵向合并
dff3=pd.DataFrame(np.arange(1,5).reshape(2,-1))
dff4=pd.DataFrame(np.zeros((2,2)))
dfc=pd.concat([dff3,dff4])
print(dff3,'\n',dff4,'\n',dfc)
横向合并
dfc=pd.concat([dff3,dff4],axis=1) #AXIS=1 x轴合并,不加默认y轴合并
print(dfc)
异常值
观察表
data=[[1,None],
[2,1],
[None,3],
[None,None]]
dff5=pd.DataFrame(data,columns=['a','b'])
#在数据清洗前取出部分数据判断数据格式、是否有值等情况;info、describe查询数据情况
print(dff5.tail(3)) #tail取出倒数3条数据
print(dff5.info())
print(dff5.describe())
info中会显示出每列的类型,可以此判断是否是正常值
std标准差
基础运算
print(dff5.count(),'\n',dff5.mean(),'\n',dff5.sum(),'\n',dff5.sum(axis=1),'\n',dff5.a.sum()) #axis=1横向相加
print(dff5.std(),'\n',dff5.var()) #var方差