Pandas
-
Series
Series相当于一维数组 print时能看到索引 -
DataFrame
DataFrame相当于二维数组,print时能看到行和列的索引
dic3 = {'one':{'a':1,'b':2,'c':3,'d':4},'two':{'a':5,'b':6,'c':7,'d':8},'three':{'a':9,'b':10,'c':11,'d':12}}
print(dic3)
print(type(dic3))
结果是这样的: 字典型创建,由行({}内)开始
- 数据查询
print(student[['Name','Height','Weight']].head())
print(student.loc[:,['Name','Height','Weight']].head())
print(student[(student['Sex']=='F') & (student['Age']>12)])
用 loc ,索引,以及条件查询都可。
- 数据统计
数值型
def stats(x):
return pd.Series([x.count(),x.min(),x.idxmin(),x.quantile(.25),x.median(),x.quantile(.75),
x.mean(),x.max(),x.idxmax(),x.mad(),x.var(),x.std(),x.skew(),x.kurt()],
index = ['Count','Min','Whicn_Min','Q1','Median','Q3','Mean','Max',
'Which_Max','Mad','Var','Std','Skew','Kurt'])
print(stats(d1))
使用apply可以应用到每一列
离散型可用 describe()
- SQL
新增行(contact)
student3 = pd.concat([student,student2])
新增列(在columns添加)
pd.DataFrame(student2, columns=['Age','Height','Name','Sex','Weight','Score'])
删除行(drop)
student.drop([0,1,3,6])
删除列
student.drop(['Height','Weight'],axis=1)
删除对象(del 对象)
查询看3
聚合(groupby):
print(student.groupby('Sex').mean())
#根据性别分组后分别平均
排序(sort_index和sort_values)
print(Data.sort_index())
print(Data.sort_values(ascending=False))
print(student.sort_values(by = ['Age','Height']))
多表连接
merge函数实现的是两个表之间的内连接,即返回两张表中共同部分的数据。
可以通过how参数设置连接的方式,left为左连接;right为右连接;outer为外连接。
stu_score2 = pd.merge(student, score, on='Name', how='left')
6.缺失值
- 删除法:当数据中的某个变量大部分值都是缺失值,可以考虑删除改变量;当缺失值是随机分布的,且缺失的数量并不是很多是,也可以删除这些缺失的观测。
- 替补法:对于连续型变量,如果变量的分布近似或就是正态分布的话,可以用均值替代那些缺失值;如果变量是有偏的,可以使用中位数来代替那些缺失值;对于离散型变量,我们一般用众数去替换那些存在缺失的观测。
- 插补法:插补法是基于蒙特卡洛模拟法,结合线性模型、广义线性模型、决策树等方法计算出来的预测值替换缺失值。
检测缺失值数量
print(sum(pd.isnull(s)))
删除缺失值
print(s.dropna())
用0填补
print(df.fillna(0))
前项后项填充
print(df.fillna(method='ffill'))
print(df.fillna(method='bfill'))
常量填充
print(df.fillna({'x1':1,'x2':2,'x3':3}))
7.实现Excel数据透视表功能(pivot_table)
data:需要进行数据透视表操作的数据框
values:指定需要聚合的字段
index:指定某些原始变量作为行索引
columns:指定哪些离散的分组变量
aggfunc:指定相应的聚合函数
fill_value:使用一个常数替代缺失值,默认不替换
margins:是否进行行或列的汇总,默认不汇总
dropna:默认所有观测为缺失的列
margins_name:默认行汇总或列汇总的名称为’All’