Pandas数据结构Series,DataFrame简介

Series简介

Series是一种类似于一维数组的对象,它由一组数据(各种Numpy数据类型)以及与之相关的数据标签(索引)组成。Series的字符串表现形式为:索引在左边,值在右边。没有为数据指定索引时,为自动创建一个0到N-1的整数型索引。可以通过Series的values和index属性获取其数组表现形式和索引对象。

Series的创建

obj = pd.Series([9, 3, 98, 23])
#获取Series的值
obj.values
#获取Series的索引
obj.index
#创建一个带有索引的Series
obj2 = pd.Series([9, 3, 98, 23], index = ['a','b','c','d']

#直接通过字典来创建Series(如果只传入一个字典,则Series的索引就是元字典中的键的有序排列)
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
obj3 = pd.Series(sdata)

Series的访问和修改

#通过索引的方式选取Series中的一个值
obj2['a']
#通过索引的方式对Series的值进行修改
obj2['a'] = 6
#通过索引的方式选取Series中的多个值
obj2[['a', 'b', 'c']]
#Series的索引介意通过赋值的方式进行就地修改
obj2.index = ['a','b','c','d']

isnull和notnull

#判断Series的元素是否为空值
obj3.isnull()
obj3.notnull()

name属性

obj4.name = 'population'
obj4.index.name = 'state'

DataFrame简介

DataFrame是一个表格型的数据,他含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔值)。DataFrame既有行索引也有列索引,可以被看做由Series组成的字典(共用一个索引)。DataFrame中的数据是以一个或多个二维块存放的。

DataFrame的创建

#使用字典创建DataFrame
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002, 2003],
        'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
frame = pd.DataFrame(data)
#创建DataFrame时指定columns和index
frame2 = pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'],
                      index=['one', 'two', 'three', 'four',
                             'five', 'six'])
#使用嵌套字典创建DataFrame
pop = {'Nevada': {2001: 2.4, 2002: 2.9},
       'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}
frame3 = pd.DataFrame(pop)

在这里插入图片描述

DataFrame的查看和修改

#选取前五行进行展示
frame.head()
#通过类似字典表及的方式或属性的方法,可以将DataFrame的列获取为一个Series
frame['state']\frame.state
#使用loc属性获取行
frame2.loc['three']
#对debt这一列进行赋值
frame2['debt'] = np.arange(6.)
#用Series对DataFrame进行赋值
val = pd.Series([-1.2, -1.5, -1.7], index=['two', 'four', 'five'])
frame2['debt'] = val
frame2

注意

1.使用Numpy函数或类似Numpy的运算(根据布尔型数组进行过滤、标量乘法、应用数学函数等),都会保留索引值的链接
2.可以将Series看成一个定长的有序字典,因为它是索引值到数据值的一个映射
3.DataFrame中为不存在的列赋值会创建出一个新列,关键字del用于删除列
4.如果嵌套字典传给DataFrame,Pandas会解释为:外层字典的键作为列索引,内层键作为行索引
5.可以使用类似Numpy数组的方法,对DataFrame进行转置(交换行和列)
6.如果DataFrame各列的数据类型不同,则值数组的的type就会选用能兼容所有列的数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值