Pandas Series的创建和索引

1.Series对象 : 包含index和values

不指定索引

import pandas as pd

s1 = pd.Series(['小黄', 20, '小黄'])
s1
s1.index
s1.values
#结果
'''
0    小黄
1    20
2     男
dtype: object
'''

'''
RangeIndex(start=0, stop=3, step=1)
'''

'''
array(['小黄', 20, '男'], dtype=object)
'''

指定索引

import pandas as pd

indexd = ['a', 'b', 'c', 'd']
valued = [1, 2, 3, 4]
s = pd.Series(valued, index = indexd)
#s = Series([1, 2, 3, 4], index = indexd)
s


#结果
'''
a    1
b    2
c    3
d    4
dtype: int64
'''

通过字典来创建Series对象 

import pandas as pd

sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}

ser = pd.Series(sdata)
ser
#结果
'''
Ohio      35000
Oregon    16000
Texas     71000
Utah       5000
dtype: int64
'''
    在用字典生成Series的时候,也可以指定索引,当索引中值对应的字典中的值不存在的时候,则此索引的值标记为Missing,NA,并且可以通过函数(pandas.isnull,pandas.notnull)来确定哪些索引对应的值是没有的.
import pandas as pd

sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}

states = ['California', 'Ohio', 'Oregon', 'Texas']

ser = pd.Series(sdata,index = states)

ser
#结果
'''
California        NaN
Ohio          35000.0
Oregon        16000.0
Texas         71000.0
dtype: float64
'''

2.命名: Series 和 index均可以命名

import pandas as pd

sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}

ser = pd.Series(sdata)

ser.name = 'number'

ser.index.name = 'label'
#结果
'''
label
Ohio      35000
Oregon    16000
Texas     71000
Utah       5000
Name: number, dtype: int64
'''

3.索引

a.使用index的值进行索引

import pandas as pd

sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}

ser = pd.Series(sdata)

ser['Ohio']
ser['Ohio':'Texas']

#结果
'''
35000
'''

'''
Ohio      35000
Oregon    16000
Texas     71000
dtype: int64
'''

请注意代码中的切片索引包含终止值。 

b.使用下标进行索引

import pandas as pd

sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}

ser = pd.Series(sdata)

ser[[0, 1]]

ser[0:2]
#结果

'''
Ohio      35000
Oregon    16000
dtype: int64
'''

'''
Ohio      35000
Oregon    16000
'''

 注意上面的切片索引,不包括终止值。

c.上面的index为字符串,假如index为数字,这个时候进行索引是按照index值进行还是按照下标进行?

s1 = pd.Series([2,3,4,5], index=[1,2,3,4])

print(s1[2])
'''
结果:
3
'''
print(s1[0]) 
#会报错

print(s1[[2,4]])
'''
结果:
2    3
4    5
dtype: int64
'''

print(s1[1:3])
'''
结果:
2    3
3    4
dtype: int64
'''

可以看出来,当index为整数的时候,那么前两种选择是使用index的值进行索引, 而后一种切片选择使用的是下标进行索引。

d使用bool值进行索引

import pandas as pd

sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}

ser = pd.Series(sdata)

ser[ser > 5000]

ser[ser==35000]

#结果
'''
Ohio      35000
Oregon    16000
Texas     71000
dtype: int64
'''


'''
Ohio    35000
dtype: int64
'''
发布了43 篇原创文章 · 获赞 28 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/xiaoxiaoliluo917/article/details/85259845
今日推荐