利用python进行数据分析论文_利用Python进行数据分析--Pandas(1)

pandas入门之Series和DataFrame

1、Series

Series的list特性

Series是pandas内置的一种类似一维数组的对象,数据列具有许多list的特性,如切片。同时具有与之相关的标签列index一一对应。

input:obj = Series([11, 22, 33, 44])

input:

obj = Series([11, 22, 33, 44],index=[1,2,3,4])

obj

output:

111

222

333

444

左边为索引index,右边为值values。在没有指定index时,默认index为从0开始自增。可以通过index和values属性获得其数组的表现形式,如obj.index。

input:

obj[1]

output:

11

input:

li = [1,2,3]

obj[li]

output:

111

222

333

input:

obj[[True,True,False,True]]

output:

111

222

444

input:

obj>23

output:

1False

2False

3True

4True

Series可以通过索引的方式选取Series中的单个或一组值,即可以传入索引值数组,也可以传入与Series长度相等的boolean数组。

支持NumPy数组运算,并保留索引和值之间的链接。

Series的dict特性

input: '22' in obj

output: True

input:

di = {

1:101,

2:202,

3:303

}

Series(di)

output:

1101

2202

3303

还可以将Series看成是一个定长的有序字典,同时也可以利用字典来创建Series,字典的index即对应Series的index。

##数据对齐功能

input:

obj = Series([4,7,9,3], index=['b','d','c','a'])

obj2 = Series([3,3,3,3], index=['a','c','d','z'])

obj+obj2

output:

a 6.0

b NaN

c 12.0

d 10.0

z NaN

dtype: float64

在对两个Series进行操作时,只要某个index对应的值缺失一次,即结果为NaN。pandas中的isnull和notnull函数可以检测确实数据。

Series具有name和index.那么属性,在赋值后可以显示出来。

2、DataFrame

DataFrame是一个表格型的数据结构,含有一组有序的列,每列可以是不同的类型,我的理解是每一列是一个Series,DataFrame的index为所有的列共享并一一对应。

DataFrame既有行索引也有列索引,可以视为由Series组成的字典。

# 利用字典创建df

data = {

'city':['xm','xm','fz'],

'year':[2000,2001,2000],

'pop':[15,16,20]

}

# 嵌套字典创建df时,外键作为列,内键作为行,可以转置改变

data2 = {

'city':{0:'xm',1:'xm'},

'year':{0:2000,1:2001},

'pop': {0:15, 1:16}

}

frame = DataFrame(data)

frame

city

year

pop

0

xm

2000

15

1

xm

2001

16

2

fz

2000

20

# 手动为df的列指定顺序,如果原df的列不包括某个index值,则这一列都视为缺失,如下debt

frame2=DataFrame(data, columns=['year','city','pop','debt'],index=[1,2,3])

frame2

year

city

pop

debt

1

2000

xm

15

NaN

2

2001

xm

16

NaN

3

2000

fz

20

NaN

# DataFrame的一列对应一个series

# 返回的series拥有原DF相同的索引

# 即拥有相同引用,而不是拷贝

city=frame2['city']

city

1 xm

2 xm

3 fz

Name: city, dtype: object

# 列赋值,可以传入单个值也可以传入与df长度相同的数组

frame['new'] = 100

frame

# frame['new'] = [100, 200, 300] 按顺序进行赋值

city

year

pop

new

0

xm

2000

15

100

1

xm

2001

16

100

2

fz

2000

20

100

ps:

python中del关键字,python具有垃圾回收机制,因此del删除的是引用,而不是内存地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值