Pandas案例学习总结

目录

一 必要库的导入

二 创建表格对象

三 查看基础数据及类型

四 设置索引、排序函数、添加和删除列

五 创建DataFrame以及表的拼接

六 查看统计值(求和,平均值,最大值,最小值,标准差,四分位数等等)

七 唯一值、缺失值和重复值

八 特殊函数


一 必要库的导入

#导入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)

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值