目录
六 查看统计值(求和,平均值,最大值,最小值,标准差,四分位数等等)
一 必要库的导入
#导入pandas库
import pandas as pd
#导入numpy库
import numpy as np
#导入seaborn库 里面有很多设计模板可以直接使用
import seaborn as sns
#导入matplotlib库,主要用于可视化绘图
import matplotlib.pyplot as plt
#在使用jupyter调用matplotlib.pyplot的绘图函数plot()进行绘图的时候,或者生成一个figure画布的时候,可以直接生成图像,而我们在spyder或者pycharm中则不需要,可以直接注释掉这一句,也是可以运行成功的。
%matplotlib inline
二 创建表格对象
#路径赋值
path = '目标路径'
#资源数据集的导入
data1 = pd.read_csv(path)
三 查看基础数据及类型
#读取显示数据集,head()方法中可填入数字,即显示数据表中前几行,默认为前五行,如data1.head(10)即显示data1的前10行
data1.head()
#与head()对应,也是读取显示数据集,tail()方法中也可填入数字,即显示数据表中倒数第几行,默认为倒数五行
data1.tail()
#显示全部数据
data1
#查看数据的索引,数据类型及内存信息
data1.info()
#查看行的个数
data1.shape[0]
#查看列的个数
data1.shape[1]
#查看全部列名称
data1.columns
#查看某列的数据
data1.列名
#查看索引
data1.index
#查看最大值的索引值
data1.idxmax(0)
#查看数据类型
data1.dtypes
#将Date这个列转换为datetime类型
data1.列名= pd.to_datetime(data1.列名)
#选取并显示前7列的数据
data1.iloc[:,0:7]
#选取并显示除开最后3列的数据
data1.iloc[:,:-3]
#选取以字母G开头的列名数据显示
data1[data1.列名.str.startswith('G')]
四 设置索引、排序函数、添加和删除列
#设置索引
data1 = data1.set_index('列名')
#重新设置索引
data1= data1.reset_index(drop = True)
#将index设置为升序 .head()是为了显示查看效果
data1.sort_index(ascending = True).head()
#排序函数
data1.sort_values(['列名'],ascending=False,inplace=True)
#data2按列名3,列名2排序
data2.sort_values(['列名3','列名2'],ascending = False)
#取数据表data1的值到新表data2
data2= data1[['列名1','列名2','列名3']]
#添加一个列进数据表
data1['新添加列名'] = ['已有列名1','已有列名2','已有列名3','已有列名4']
#从数据表中删除列
del data1['列名']
五 创建DataFrame以及表的拼接
raw_data_1 = {
'subject_id':['1','2','3','4','5'],
'first_name':['Alex','Amy','Allen','Alice','Ayoung'],
'last_name':['Anderson','Ackerman','Ali','Aoni','Atiches']}
raw_data_2 = {
'subject_id':['4','5','6','7','8'],
'first_name':['Billy','Brian','Bran','Bryce','Betty'],
'last_name':['Bonder','Black','Balwner','Brice','Btisan']}
raw_data_3 = {
'subject_id':['1','2','3','4','5','7','8','9','10','11'],
'test_id':[51,15,15,61,16,14,15,1,61,16]}
data1 = pd.DataFrame(raw_data_1,columns = ['subject_id','first_name','last_name'])
data2 = pd.DataFrame(raw_data_2,columns = ['subject_id','first_name','last_name'])
data3 = pd.DataFrame(raw_data_3,columns = ['subject_id','test_id'])
#数据表行维度的合并 axis默认为0
all_data = pd.concat([data1,data2])
#数据表列维度的合并 axis = 1 为列维度
all_data_col = pd.concat([data1,data2],axis = 1)
#按照subject_id的值对all_data和data3作合并
pd.merge(all_data,data3,on='subject_id')
#对data1和data2按照subject_id作表的连接,参数how可选(inner交集,outer并集,left左交集,right右交集)其中之一
pd.merge(data1,data2,on='subject_id',how='inner')
六 查看统计值(求和,平均值,最大值,最小值,标准差,四分位数等等)
#查看列的求和数量
data1['列名'].sum()
#所有列平均值的显示,()中可填入参数axis=0或axis=1,0为行,1为列
data1.mean()
#所有列最小值的显示,()中可填入参数axis=0或axis=1,0为行,1为列
data1.min()
#所有列最大值的显示,()中可填入参数axis=0或axis=1,0为行,1为列
data1.max()
#所有列标准差的显示,()中可填入参数axis=0或axis=1,0为行,1为列
data1.std()
#查看对"列名1"分组后列名2的平均值
data1.groupby('列名1').列名2.mean()
#查看对"列名1"分组后列名2的描述性统计值(包含count,mean,std,max,min,四分位25%、50%、75%)
data1.groupby('列名1').列名2.describe()
#查看对"列名"分组后所有列的中位数
data1.groupby('列名').median()
#查看对"列名1"分组后列名2的平均值,最小值以及最大值
data1.groupby('列名1').列名2.agg(['mean','min','max'])
七 唯一值、缺失值和重复值
#查看某列唯一值的个数
data1['列名'].nunique()
#查找缺失值
pd.isnull(data1).sum()
#将第3列的10-20行设置成缺失值
data1.iloc[10:20,2:3] = np.nan
#将前3行设置为缺失值
data1.iloc[0:3,:] = np.nan
#删除有缺失值的行
data1= data1.dropna(how = 'any')
#某列缺失值的替换
data1.列名.fillna(1,inplace = True)
#查看索引是否有重复值?
data1.index.is_unique
#查看完整数据值的数量
data1.shape[0] - data1.isnull().sum()
八 特殊函数
1. apply 聚合函数
apply是pandas库的一个很重要的函数,多和groupby函数一起用,也可以直接用于DataFrame和Series对象.主要用于数据聚合运算,可以很方便的对分组进行现有的运算和自定义的运算.
data['month'] = data['date'].apply(lambda date: date.month)
data['year'] = data['date'].apply(lambda date: date.year)
data['day'] = data['date'].apply(lambda date: date.day)
2. resample 重新采样函数
Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法.
# 更多关于 .resample 的介绍
# (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.resample.html)