当前位置 : 主页 > 编程语言 > python >

最全的数据科学常用pandas教程

来源:互联网 收集:自由互联 发布时间:2022-06-24
Pandas是在NumPy之上构建的更新软件包,提供了数据框架的有效实现。 DataFrames本质上是多维数组,带有附加的行和列标签,通常具有异构类型和/或缺失的数据。 除了为标记数据提供方便

Pandas是在NumPy之上构建的更新软件包,提供了数据框架的有效实现。
DataFrames本质上是多维数组,带有附加的行和列标签,通常具有异构类型和/或缺失的数据。
除了为标记数据提供方便的存储接口外,Pandas还实现了许多数据库框架和电子表格程序用户熟悉的强大数据操作。

pandas有二种类型Series、DataFrame


Pandas

  • ​​Series​​
  • ​​创建Series​​
  • ​​使用NumPy数组创建系列​​
  • ​​使用字典创建系列​​
  • ​​使用索引​​
  • ​​DataFrame​​
  • ​​创建DataFrame​​
  • ​​重命名列​​
  • ​​数据帧(数据列)​​
  • ​​获取列名​​
  • ​​向DataFrame添加新列​​
  • ​​从DataFrame中删除列​​
  • ​​根据行索引标签,选择行​​
  • ​​根据行索引位置,选择行​​
  • ​​条件选择​​
  • ​​处理数据缺失的方法​​
  • ​​检查缺失值​​
  • ​​去除缺失值​​
  • ​​填充缺失值​​
  • ​​替换值​​
  • ​​Groupby方法​​
  • ​​简单的聚合​​
  • ​​应用多个聚合函数​​
  • ​​Groupby重新设置索引​​
  • ​​合并、连接DataFrame​​
  • ​​Concat串联​​
  • ​​merge合并​​
  • ​​其他操作​​
  • ​​计算列值频率​​
  • ​​列排序​​
  • ​​功能函数应用于DataFrame所有元素​​
  • ​​GUI界面玩转pandas​​
  • ​​安装Bamboolib​​
  • ​​验证Bamboolib安装​​

Series

创建Series

使用下面列表、numpy数组或字典转化为Series

label=['w','x','y','z']
list=[10,20,30,40]
array=np.array([10,20,30,40])
dict={'w':10,'x':20,'y':30,'z':40}

pd.Series(data=list)
最全的数据科学常用pandas教程_缺失值
pd.Series(data=list,index=label)
最全的数据科学常用pandas教程_python_02
pd.Series(list,label)
最全的数据科学常用pandas教程_python_02

使用NumPy数组创建系列

pd.Series(array)
最全的数据科学常用pandas教程_数据帧_04
pd.Series(array,label)
最全的数据科学常用pandas教程_python_02

使用字典创建系列

pd.Series(dict)
最全的数据科学常用pandas教程_数据帧_06

使用索引

teamA=pd.Series([1,2,3,4],index=[‘DK’,‘FPX’,‘HLE’,‘RNG’])
最全的数据科学常用pandas教程_数据_07

DataFrame

创建DataFrame

data=pd.DataFrame(randn(10,5),index=‘A B C D E F G H I J’.split(),columns=‘Score1 Score2 Score3 Score4 Score5’.split())

from numpy.random import randn
np.random.seed(1)
data=pd.DataFrame(randn(10,5),index='A B C D E F G H I J'.split(),columns='Score1 Score2 Score3 Score4 Score5'.split())

最全的数据科学常用pandas教程_python_08

重命名列

data.rename(columns{‘Score1’:‘Score6’,‘Score2’:‘Score7’})
最全的数据科学常用pandas教程_数据帧_09

数据帧(数据列)

data[‘Score3’]
最全的数据科学常用pandas教程_缺失值_10
data[[‘Score2’,‘Score1’]]
最全的数据科学常用pandas教程_python_11

获取列名

data.columns.tolist()
最全的数据科学常用pandas教程_数据帧_12

向DataFrame添加新列

data[‘Score6’]=data[‘Score1’]+data[‘Score2’]
最全的数据科学常用pandas教程_python_13

从DataFrame中删除列

data.drop(‘Score6’,axis=1)
#axis=1 删除行,axis=1 删除列
最全的数据科学常用pandas教程_数据帧_14

根据行索引标签,选择行

data.loc[‘F’]
最全的数据科学常用pandas教程_数据帧_15

根据行索引位置,选择行

data.iloc[2]
最全的数据科学常用pandas教程_缺失值_16

条件选择

data>0.5
最全的数据科学常用pandas教程_缺失值_17
data[data>0.5]
最全的数据科学常用pandas教程_数据_18

处理数据缺失的方法

生成一个数据

data=pd.DataFrame({'Faker':[1,2,np.nan,4,6,7,2,np.nan],
'ShowMaker':[5,np.nan,np.nan,5,7,2,4,5],
'Chovy':[1,2,3,4,5,6,7,8]})

最全的数据科学常用pandas教程_数据_19

检查缺失值

data.isna().sum()
最全的数据科学常用pandas教程_数据帧_20

去除缺失值

data.dropna()
最全的数据科学常用pandas教程_数据帧_21

填充缺失值

data.fillna(value=0)
fillna函数的方法参数可用于根据列中的上一个或下一个值来填充缺少的值。
method=ffill:用前一个非缺失值去填充该缺失值
method=bfill:用下一个非缺失值填充该缺失值
最全的数据科学常用pandas教程_数据帧_22

替换值

replace函数可以用来替换dataframe中的值。
data.replace(5,25)
最全的数据科学常用pandas教程_数据帧_23

Groupby方法

生成数据

data={"ID":['001','001','003','003','005','005'],
"name":['ClearLove','Kid','Zz1tai','Cool','Happy','Uzi'],
"team":['EDG','IG','RNG','NB','NB','RNG'],
"kiss":[2005,3245,1245,8765,2332,4332]}
data=pd.DataFrame(data)

最全的数据科学常用pandas教程_数据帧_24

简单的聚合

data.groupby(“ID”).mean()
最全的数据科学常用pandas教程_数据帧_25

应用多个聚合函数

data[[‘ID’,‘team’,‘kiss’]].groupby([“ID”,“team”]).agg([‘mean’,‘count’])
最全的数据科学常用pandas教程_数据_26

Groupby重新设置索引

data[[‘ID’,‘team’,‘kiss’]].groupby([“ID”,“team”]).mean().reset_index()
最全的数据科学常用pandas教程_python_27

合并、连接DataFrame

生成数据

data1 = pd.DataFrame({'region':['LPL','LCK'],
'team':['RNG','DK'],
'name':['xiaohu','ShowMaker']},
index=[0,1])
data2 = pd.DataFrame({'region':['LPL','LCK'],
'team':['FPX','T1'],
'name':['Donib','Faker']},
index=[2,3])
data3 = pd.DataFrame({'region':['LPL','LCK'],
'team':['EDG','HLE'],
'name':['Viper','Chovy']},
index=[4,5])
data4 = pd.DataFrame({'region':['LPL','LCK'],
'team':['WE','GEN'],
'name':['ELK','BBD']},
index=[6,7])

Concat串联

串联基本上通过行或列(轴=0或1)连接DataFrames。我们还需要确保数据帧的尺寸相同
pd.concat([data1,data2,data3,data4])
最全的数据科学常用pandas教程_缺失值_28
pd.concat([data1,data2,data3,data4],axis=1)
最全的数据科学常用pandas教程_数据帧_29

merge合并

就像SQL表一样,python中的合并函数允许我们合并数据帧
pd.merge(data1,data2,how=‘outer’,on=‘region’)
最全的数据科学常用pandas教程_数据_30

其他操作

生成数据

ata={"ID":['001','001','003','003','005','005'],
"name":['ClearLove','Kid','Zz1tai','Cool','Happy','Uzi'],
"team":['EDG','IG','RNG','NB','NB','RNG'],
"kiss":[1000,1000,1500,2000,2000,3000]}
data=pd.DataFrame(data)

计算列值频率

data[‘kiss’].value_counts()
最全的数据科学常用pandas教程_数据_31

列排序

data.sort_values(by=‘name’)
最全的数据科学常用pandas教程_数据_32

功能函数应用于DataFrame所有元素

data[‘kiss’].apply(lambda x:x*2)
最全的数据科学常用pandas教程_数据_33

GUI界面玩转pandas

在我们做数据处理的时候,有没有觉得每次要做很多重复的事情,写无数次代码,为什么不开发一个数据处理GUI呢。

我们的想法是“不用编码就可以学习和使用 Pandas ”,现在这个想法可能开始很简单,但我发现Bamboolib在数据探索和数据清理方面要多得多。

安装Bamboolib

pip install bamboolib

验证Bamboolib安装

import bamboolib as bam
import pandas as pd
data = pd.read_csv(bam.titanic_csv)
data

具体怎么使用各位可以自行去试一下,很容易上手的

上一篇:Python 设计模式:适配器模式
下一篇:没有了
网友评论