pandas入门(一)

来源:互联网 发布:商标图形设计软件 编辑:程序博客网 时间:2024/05/18 01:21

pandas入门之Series(一)

from pandas import Seriesobj=Series([4,7,-5,3])  #创建Series对象,使用默认索引(默认索引是从0开始的数字)obj

运行结果:
0 4
1 7
2 -5
3 3
dtype: int64

obj=Series((4,7,-5,3))  #不仅可以把列表转换成Series对象,也可将元组改成Series对象print(obj)tr=(1,2,3,4)obj_1=Series(obj)print(obj_1)

运行结果:
0 4
1 7
2 -5
3 3
dtype: int64
0 4
1 7
2 -5
3 3
dtype: int64

obj2=Series([1,2,3,4],index=['a','b','c','d'])  #可以自己制定索引值obj2

运行结果:
a 1
b 2
c 3
d 4
dtype: int64

obj2=Series([1,2,3,4],index=['a','b','c','d','e'])  #如果给定索引的长度和数组的长度不一致会触发ValueError异常

运行结果:
ValueError: Wrong number of items passed 4, placement implies 5

obj2.index  #索引值的提取

运行结果:
Index([‘a’, ‘b’, ‘c’, ‘d’], dtype=’object’),因为index为Series对象的属性

obj2['b']  #通过单个索引取值obj2[['a','b']] #通过多个索引取值,输入的是一个列表, 不能是元组obj2[('a','b')] #如果输入元组,则报TypeError  异常

运行结果分别为:
2
a 1
b 2
dtype: int64
仔细观察会发现,第一个输出的是一个数值2,是不带索引的,第二个输出是一个Series,带有索引,如果把第一个改成:

obj2[['b']]

结果是:
b 2
但是如果这样是会报错的:

obj2['a','b']  #这样是会报错的,而并不是输出这些索引对应的值
obj2[obj2>1]  #对数组进行刷选,用的是值比较

b 2
c 3
d 4
dtype: int64

sdata={'a':1,'b':2,'c':3,'d':4}  #创建字典obj3=Series(sdata)  #通过字典来创建Seriesobj3

通过字典创建Series,字典的键对应Series的索引,值对应Series的值

obj4=Series(sdata,index=['a','bb','cc','dd'])  #输出一个字典,只想要制定字典键值,那么可以增加一个index如果字典某     #键在index中不存在,那么该索引对应的值就是NaNobj4

a 1.0
bb NaN
cc NaN
dd NaN
dtype: float64
a在字典中有,则其值为1,其他的在字典的键中都没有,则为NaN

import pandas as npnp.isnull(obj4)#首先判断哪些为空,如果为空,则返回真,否则返回假。对应的有notnull,

运行结果:
a False
bb True
cc True
dd True
dtype: bool

obj3+obj4  #Series的算数运算,根据相同的索引进行运算,如果某个索引没有对应的,那么就为NaNobj3*obj4 

a 2.0
b NaN
bb NaN
c NaN
cc NaN
d NaN
dd NaN
dtype: float64
a 1.0
b NaN
bb NaN
c NaN
cc NaN
d NaN
dd NaN
dtype: float64

obj4.name='rank'#此处是给Series对象本身的name属性赋值obj4.index.name='index_name'  #此处是给Series对象的索引的name属性赋值,obj4

index_name
a 1.0
bb NaN
cc NaN
dd NaN
Name: rank, dtype: float64
要注意,一个是对象的name属性,一个是对象索引的name属性,要注意区分,相当于前者是表格名称,一个是表格属性列的 名字,就是表格中一般位于表格第一行第一列的那个单元格

obj4.index=['a1','b1','c1','d1'] obj4

a1 1.0
b1 NaN
c1 NaN
d1 NaN
Name: rank, dtype: float64
Series的索引可以通过赋值的方式修改,但是注意,既然修改,就必须对应的索引都应该有,即使某一个不修改直接写原来值就好,但是不能不写,例如:obj4.index=[‘a1’,’b1’,’c1’]会报错,必须大小一致。

0 0
原创粉丝点击