Pandas中重要的两个数据结构:Series和DataFrame。数据分析必学的两种数据结构,这两种数据结构以Numpy的Ndarray为基础,在Ndarray的基础上将功能做了扩展。需要掌握这两种数据结构的定义、创建、属性、函数。Python数据分析中所使用的大部分代码都属于对这两种数据结构的操作。每个知识点都会写一篇文章做详细讲解,本文主要介绍Series的定义和创建。
Series
定义
Series是可以自定义行标签(index)的一维数组。从定义中可以看出Series就是一个数组(ndarray),并且是一个一维数组,所以它的维度(ndim属性)永远都是1。 除此以外,ndarray有的属性和方法Series全部都有,并且在此基础上还做了扩展。例如:Series可以自定义行索引,也就是说如果从Series中获取元素的方法比数组(ndarray)的方法多,除了可以使用整数索引以外还可以使用自定义的行索引进行获取。定义虽然简单,但是非常重要,从定义可以知道Series的很多功能,当然,这必须是对Numpy学习很扎实的条件下。
创建
Series创建的语法如下:
从语法可以看出这是一个类,需要注意的是在创建时’Series’的首字母必须大写。
class pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
参数:
- data:接收array_like,可迭代对象,字典或者标量,创建Series需要的数据。
- index:接收array_like,Series的行索引。
- dtype:接收str,numpy数据类型,Series的数据类型。
- name:接收str,给Series取的名字。
- copy:接收bool值,默认False,是否复制输入的数据。
示例:
使用数组创建:
>>> import numpy as np
>>> import pandas as pd
>>> arr01 = np.arange(10,16)
>>> ser01 = pd.Series(data=arr01, index=['a','b','c','d','e','f'],dtype=np.int16, name='age', copy=True)
>>> ser01
a 10
b 11
c 12
d 13
e 14
f 15
Name: age, dtype: int16
使用字典创建:
>>> d = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5, 'f':6}
>>> ser02 = pd.Series(data=d, dtype='int16')
>>> ser02
a 1
b 2
c 3
d 4
e 5
f 6
dtype: int16
使用标量创建:
>>> ser03 = pd.Series(data=10, index=['a','b','c','d','e','f'], dtype='int16')
>>> ser03
a 10
b 10
c 10
d 10
e 10
f 10
dtype: int16
使用可迭代对象创建:
除以上几种数据类型外,列表、元组等可迭代对象都可以当作数据源给参数data传递数据。如果没有设置参数index,则会使用整数索引作为Series的行索引。
>>> ser04 = pd.Series(data=range(1,10), dtype='int16')
>>> ser04
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
dtype: int16
0~8为行索引
1~9为数据