python中的pandas库

pandas的数据结构和基本功能

Series对象

利用pd.Series函数生成series对象

#series对象相当于一维数组
import pandas as pd
a=pd.Series([1,2,3]) #dtype为int64
a=pd.Series(["1","2","3"]) #dtype为object 

series对象的切片

a=pd.Series(np.arange(10)) 
a[0::3] #前两个参数是范围,左包含右不包含,第三个参数是步长

x1=pd.Series(np.arange(4),index=list("abcd")) 
x1["a":"c"] #当参数不是数字时,左右都包含

布尔索引

a=pd.Series(np.random.uniform(-1,1,10)) #从(-1,1)的均匀分布中随机抽取10个数
a[a>0.3]#返回布尔值为True对应的value

astype方法,series类型转换

series1=pd.Series(np.arange(10)) 
series1.astype(str) #将整数变成字符串

c=pd.Series(['1','2','a'])
c.astype(np.float,errors='ignore')
#参数errors有两个可能取值,一个是"raise",一个是"ignore"。 
#raise 如果在转化过程中出现错误, 则抛出一个错误提示,并停止程序执行。 
#"ignore" 如果在转化过程中出现错误,则忽略这个错误,如果出现转化错误,则series的类型为object

series类型转换–pd.to_numeric方法

有时候会涉及到将 object 类型转为其他类型,常见的有转为数字、日期、时间差,Pandas 中分别对应 to_numeric、to_datetime、to_timedelta 方法。

series1=pd.Series(["1","2","a"]) 
pd.to_numeric(series1,errors="coerce") #其他类型转化为数字
#errors参数有三个可能取值,分别是'ignore', 'raise', 'coerce'(强迫), 默认的取值是 'raise'. 

series对象的map方法

#将字符串转化为float
series2=pd.Series(["1","2","a"]) 
def f1(x):     
	try:         	
		a=float(x)     
	except:         
		a=np.nan     
	return a 
series2.map(f1) 

#Series对象的运算,类型必须相同
series1=pd.Series([1,2,3]) 
series1.map(lambda x:x+2) 

DataFrame(数据框)对象

数据框对象的生成

pd.DataFrame–数据框对象的手动生成

data1=pd.DataFrame(np.arange(24).reshape(6,4),columns=["a",1,"c","e"])
data1

#字典形式
data2=pd.DataFrame({
   "x":np.random.rand(5),"y":np.random.rand(5)}) 
data2 
 

pd.read_csv----外部文件读取

#导入CSV文件,如果代码和导入的文件在一个路径下,直接写文件名,如果路径不同,导入时注意用双斜杠
pd.read_csv('working.csv',encoding='GBK')
#UTF-8是国际编码,GBK是国内编码

pd.read_excel----外部文件读取

这个函数的参数非常多,一般情况下保持默认就可以

#当删除第一行大标题后,变量的名字就变成了第一行,索引值为0
a=pd.read_excel('chapter3_1.xls',sheet_name='Sheet1',nrows=10,skiprows=1,header=0)
#导入某个Excel文件中第一个表的10行数据,不包含标题,跳过大标题,变量名索引值变成了0

查看数据框基本信息(info方法)

data1.info()

查看前/后几条信息(head,tail方法)

data1.head() #如果省略括号内的参数,则显示前五行 
data1.tail(3) #如果省略括号内的参数,则显示后五行 

查看数据框的形状——shape属性

data1.shape  #返回一个元组

values、columns、index属性

data1.values #返回的是一个ndarray实例 
data1.columns #返回的是一个类似的一维数组,是变量名
data1.index #返回索引值的范围

数据框对象的转置

data1.T 

数据框对象的索引和切片

#切取一列或几列 
data1=pd.DataFrame(np.arange(12).reshape(3,4),columns=["a",1,"c","e"] ) 
#如果列名是字符串则有如下两种方式把列调出来
#方法一
data1["a"] 
#方法二
data1.a 
#如果列名是数字则只能采用第一种方式进行切片
data1[["a","c"]] #切取a和c列

#切取一行或者几行 
data1[0:0]   
#切取第0行,注意不要写成data1[0],会有错误提示 
data1[0:3]  #切取前三行 

loc方法:显式索引

data1=pd.DataFrame(np.random.rand(4,3),columns=["x1","x2","x3"]                    ,index=["a","b","c","d"]) 
#语法 data1.loc[索引行,索引列 ] 
data1.loc[:,"x1":"x3"] #索引列名为x1,x3的所有行
data1.loc[["a","b","c"],["x1","x2","x3"]] 
#注意方括号内第一个参数是行标签列表,切取不连续的行和列
data1.loc["a":"b","x1":"x3"] 
#切取连续的行和列,注意使用显式索引的时候,冒号右侧的列或行是包含的

iloc方法:隐式索引

使用 iloc 也就是 index_loc 这种方式不看你的行索引和列索引是什么名称, 只看数据是处于表中的一个什么位置.

data1=pd.DataFrame(np.random.rand(4,3),columns=["x1"
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值